From 1dff5ea036600ec5cf50030dc44fc07a55cf5a2d Mon Sep 17 00:00:00 2001 From: dmz <2033017499@qq.com> Date: Thu, 3 Jul 2025 16:23:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=8D=B1=E9=99=A9=E5=8C=BA?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web-command-center/CHANGES_SUMMARY.md | 1 + .../web-command-center/README_UNIFIED_MAP.md | 131 ++ .../backend/src/routes/threatZones.js | 675 +++++----- .../web-command-center/database/init.sql | 53 +- ...5cbcb95f2024a401abb39cd47c8df2571b24a.json | 1 + ...cd210e5ec90724be9a3822da519fa70cb28eb.json | 1 + ...1b2050f9175baff63fd79b033ff7385ba126c.json | 1 + ...5f315b037c7377844598da13a21da28ac0ee4.json | 1 + ...eae3a72d93df62a9267c6f06801df4d2d2d88.json | 1 + ...4d46a2a96acf78c8365cad69e4eee2f0f4b94.json | 1 + ...419fdd95077fadd4615f76a6f759031b17378.json | 1 + ...b57afe4670d2adfd0da73c7785fb2de5aafa0.json | 1 + ...3e615818471a1ad0f8f3815700c8ecd3cc467.json | 1 + ...15779b66769a4e5cb14d2d6455436e91ec51d.json | 1 + ...4be27705a20b86f176b1fb85bf4ff35681dad.json | 1 + ...fc46dce5173d0b87037e4d50c89aeff9630a7.json | 1 + ...ca3ce40554479871a7dd074cf0af68b5939cb.json | 1 + ...5a2aafaacd8928390f0681b38a8e421c654d5.json | 1 + ...eb0e236bb225a1b5b87ebe5e385531dce98f9.json | 1 + ...38eb100bdd0217dfbe56c0b89a6ee1b92dd1a.json | 1 + ...0f0ffaed9569b15ab99ed1c9e6b73776ed760.json | 1 + ...1ec573f5cd24a8aa3928bd8060087d708994b.json | 1 + ...69d53c55211aa1a4e5a13eedb4053743a8cb4.json | 1 + ...7bd07dfce45ad0b56f3ef9038ebd72d7f94cf.json | 1 + ...93301f112e06a95ae1826dfd3f16312917fb0.json | 1 + ...df586c1946901ba5dc0b10c88bd6c7d4fadac.json | 1 + ...f278b3fd594b0a05a82d463239a68c639a6e5.json | 1 + ...a15ee8e220de503f1967b7b330f6a5691efde.json | 1 + ...4d9afc3344a9107044d1871c8fd493962dcfb.json | 1 + ...3148ee072ab7c8a914993a504593838e23760.json | 1 + ...912e3358eaa894cae29b4e16e5f8ae301a36a.json | 1 + ...892ed7fb6d3d64716eae0ba2706caab2d5493.json | 1 + ...ce87f312b74e0cdf32b8b9f8a49b676076149.json | 1 + ...3cde49e968c2e263284a1fde14064ceae87a6.json | 1 + ...de53875d0f587daffdc33ad370e85b6dd494b.json | 1 + ...b494e947b9b6bd1bff161ea613177fe78c387.json | 1 + ...4a17141b010ad6af65a7562e17953724aa655.json | 1 + ...6a947b92430ac72597597563f651b664f2529.json | 1 + ...dd303b3fdedb7d8bcb8ab2eb7ee49c38fd068.json | 1 + ...caed76a96870aea98c7c9bb1d65841a66c443.json | 1 + ...407670c13fcbde0be47ff5073bab04fc3777b.json | 1 + ...9b8603d6e554ff4983a2fb308b07f674ba39d.json | 1 + ...75cc0132dbc6bf9a572352aa88794e2c02319.json | 1 + ...8d0944d92ca2c3629487e77beb25893d21e74.json | 1 + ...160cf7ef0d9edc1abe1f52907726285602f82.json | 1 + ...362efcdc1088558e0e08a61b59efd6f216548.json | 1 + ...29329981aceb01eb7a10cd392a31357b4fc85.json | 1 + ...82643b69a0e62d67dd11b77aee3a57ac8c5df.json | 1 + ...e42b1fc585b6d3baa1faef2c55947b5fded5c.json | 1 + ...620e419693a6e6ba344549b85ee7a073fa8db.json | 1 + ...062fffe919be51e5d606f2ebd8a054acc8a36.json | 1 + ...43f4e6cd74774e3f5a8ede3fb89ba9b146f67.json | 1 + ...4ce63edf4cbe201314c61c96c7fe08912bf8b.json | 1 + ...eefdb23ed777f70be6c2f07546f1aff2ff88c.json | 1 + ...c0d13865b65a3892ae630f5648a5f0b8b83f7.json | 1 + ...5b65e497ce8895cc3ce3c6a984f7a2b3df1fd.json | 1 + ...a72e01577a02507e5ced8f2c90cde6272b86f.json | 1 + ...2c798736fee0c5198335f0b7a72b0e9c9e030.json | 1 + ...9ad8a7185ff51ac0577c5bfc04251c83afb61.json | 1 + ...8d4f35de5112f4997d41871218455d4b99369.json | 1 + ...f09a83e5c39a2290e16e941ee9e59f7e63fbe.json | 1 + ...341a141d13d2aca97eae8dfe4eef64ab11e54.json | 1 + ...911c4f6e748d3f9c31718d6bec7e1c9b60907.json | 1 + ...8da62366f492babd3d27c404f2ca27d8298cd.json | 1 + ...a63823bf1ad7e90b3a593c719003dfc9c6a8e.json | 1 + ...ef6a47b160b06aa661204d880b6f6d4737378.json | 1 + ...bf7323f11a2391e1dd74905badd617885976b.json | 1 + ...b524b90880f49996582f29399964b1e023a8e.json | 1 + ...0dd3e8c468a734ac268b34f355dd1a1b7e8fe.json | 1 + ...6257f448b8f1aad20e8d09b1872cea19c6cea.json | 1 + ...e604ef4a8d865aea99091c81d6bab2fe8be71.json | 1 + ...2054c2b2934a8033508036ef0ff922658b7b5.json | 1 + ...139b53afcf2595d5915581cdba3c0ade398d1.json | 1 + ...809167e32988695a9ed60ca549a04f7d8be9c.json | 1 + ...ef40cb25b3c8311bb3245be70a59e644fda4c.json | 1 + ...074975ae4d41331733a61052505abaaae0410.json | 1 + ...db06907a8c7deccba64a158e0f7e1a58480a3.json | 1 + ...d8bd18db70a450a9ebeee2b16d1dd4496b53f.json | 1 + ...41f59be0c24e0f666faeb083c262a8c95d996.json | 1 + ...e6d0b62cad07a3de458aa594bbfd86a386ff8.json | 1 + ...e818e9b63d752713549a1bd4f78f13c93d7d9.json | 1 + ...c9f92faac76376abae0b390df6f5537b3b4a9.json | 1 + ...0109c26f1f1bd751c17600530a085b28b6b39.json | 1 + .../frontend/src/components/SharedMap.vue | 197 +-- .../frontend/src/store/index.js | 3 + .../frontend/src/views/MapView.vue | 1078 ---------------- .../frontend/src/views/PathPlanningView.vue | 649 ---------- .../frontend/src/views/ThreatZoneView.vue | 921 -------------- .../frontend/src/views/UnifiedMapView.vue | 1107 ++++++++++++++++- 89 files changed, 1595 insertions(+), 3299 deletions(-) create mode 100644 Src/command_center/web-command-center/CHANGES_SUMMARY.md create mode 100644 Src/command_center/web-command-center/README_UNIFIED_MAP.md create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/03b5f47a64254c436c4d6fecd3b5cbcb95f2024a401abb39cd47c8df2571b24a.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/063cdc60c01d5d6b048c4309d74cd210e5ec90724be9a3822da519fa70cb28eb.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/0ce8e478c54b703e25462721a701b2050f9175baff63fd79b033ff7385ba126c.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/1063e17fb522be0f1a443f219b65f315b037c7377844598da13a21da28ac0ee4.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/138242505d77b430829d323926aeae3a72d93df62a9267c6f06801df4d2d2d88.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/13e87d8291716666317d5a3edd44d46a2a96acf78c8365cad69e4eee2f0f4b94.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/17da194749c028b8e85ec1d876d419fdd95077fadd4615f76a6f759031b17378.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/19a5975286a411109bc13a13d73b57afe4670d2adfd0da73c7785fb2de5aafa0.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/1ad33a07923bd798433f18b78f33e615818471a1ad0f8f3815700c8ecd3cc467.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2347660e0fc3e517e9a0498c24615779b66769a4e5cb14d2d6455436e91ec51d.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/273df93ffcf7cd25aae955578594be27705a20b86f176b1fb85bf4ff35681dad.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2914767dd88913f2403e176f151fc46dce5173d0b87037e4d50c89aeff9630a7.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2a1f406567b9354f78efa5de88cca3ce40554479871a7dd074cf0af68b5939cb.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2e2e476105ec89043d7397c83845a2aafaacd8928390f0681b38a8e421c654d5.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2f83a8af8c962c63d24fecaf09feb0e236bb225a1b5b87ebe5e385531dce98f9.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/354d1299b080275575890a3121138eb100bdd0217dfbe56c0b89a6ee1b92dd1a.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/3cfd15e26f556b66f2ee7e4c8b30f0ffaed9569b15ab99ed1c9e6b73776ed760.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/3d6914ff08c63197db9b5bcfe0e1ec573f5cd24a8aa3928bd8060087d708994b.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4396dae7fa0e9a072290d80702069d53c55211aa1a4e5a13eedb4053743a8cb4.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4619a8a1a78d154b20e1329c8017bd07dfce45ad0b56f3ef9038ebd72d7f94cf.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/46903185ba8752b25138aab196693301f112e06a95ae1826dfd3f16312917fb0.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4b76937357d59948aeb0149e754df586c1946901ba5dc0b10c88bd6c7d4fadac.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4d32638fdb238c7e06d1b4e4113f278b3fd594b0a05a82d463239a68c639a6e5.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4d8f73429628707dd5f50132185a15ee8e220de503f1967b7b330f6a5691efde.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/510df2daf387b1212130f48ee194d9afc3344a9107044d1871c8fd493962dcfb.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/523466c5dbe2165cd68847061b63148ee072ab7c8a914993a504593838e23760.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/540d71f8f62b68a8574169f13b2912e3358eaa894cae29b4e16e5f8ae301a36a.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/5575080d1a863950450500c9fbb892ed7fb6d3d64716eae0ba2706caab2d5493.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/5f64de7714ed2b1e1e22edc4ec1ce87f312b74e0cdf32b8b9f8a49b676076149.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/61ab996891776247c590dba8f663cde49e968c2e263284a1fde14064ceae87a6.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6cb3e1479c1a34c6075d60edca7de53875d0f587daffdc33ad370e85b6dd494b.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6ceb9986ba4dd44916ec43cd2cdb494e947b9b6bd1bff161ea613177fe78c387.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6e502e811bb3fc28cfb193222844a17141b010ad6af65a7562e17953724aa655.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6f4794dd176d0f1219e4bf45c5a6a947b92430ac72597597563f651b664f2529.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/747bae8b7e7287eb8e549683cfadd303b3fdedb7d8bcb8ab2eb7ee49c38fd068.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/797cd7569670b54f239f276789fcaed76a96870aea98c7c9bb1d65841a66c443.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/7c0f91b1d12eded4225464d5000407670c13fcbde0be47ff5073bab04fc3777b.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/80e049eef30f39e4e1fbae8961e9b8603d6e554ff4983a2fb308b07f674ba39d.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/82082ec34c36f9543c930eedc9a75cc0132dbc6bf9a572352aa88794e2c02319.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/82b3429bc3a17433c19ccb725508d0944d92ca2c3629487e77beb25893d21e74.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/84b1e2f18be30ccdae1a022ff3a160cf7ef0d9edc1abe1f52907726285602f82.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/859c10cb2142bd4ea896f7c04f0362efcdc1088558e0e08a61b59efd6f216548.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/879b861a995fa17005d8685bfe929329981aceb01eb7a10cd392a31357b4fc85.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/8e15ffac29980c75fb0430f646682643b69a0e62d67dd11b77aee3a57ac8c5df.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/9057afc170999ca36f446ccc348e42b1fc585b6d3baa1faef2c55947b5fded5c.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/98750f006daac942d40ee7fd345620e419693a6e6ba344549b85ee7a073fa8db.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/a0ed66d8ae6586e7b943a825270062fffe919be51e5d606f2ebd8a054acc8a36.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/a3f0821b520ed6908046746bffc43f4e6cd74774e3f5a8ede3fb89ba9b146f67.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/aba7692beb3c8f889cee5f314be4ce63edf4cbe201314c61c96c7fe08912bf8b.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/ad94234a524a291636bec1c9279eefdb23ed777f70be6c2f07546f1aff2ff88c.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/b0307bcca3a9236817e906b108ac0d13865b65a3892ae630f5648a5f0b8b83f7.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/b44b45a8f25570c8a5e0c4b89405b65e497ce8895cc3ce3c6a984f7a2b3df1fd.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/ba7ec567c736514a64aa6ba9e1ba72e01577a02507e5ced8f2c90cde6272b86f.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/bce8d2b387ad42254fcf2f3ee602c798736fee0c5198335f0b7a72b0e9c9e030.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/bebac8293a3b8a9a9a889e80e839ad8a7185ff51ac0577c5bfc04251c83afb61.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/c344e3c374778c69346318605d98d4f35de5112f4997d41871218455d4b99369.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/c70389b97f8841910b6585a959cf09a83e5c39a2290e16e941ee9e59f7e63fbe.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/caa05b64597219a83c32bc76b91341a141d13d2aca97eae8dfe4eef64ab11e54.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/cb4f9889d90455ef12db9c8653d911c4f6e748d3f9c31718d6bec7e1c9b60907.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/cd8c0874c3b69ce9d8c1cc734778da62366f492babd3d27c404f2ca27d8298cd.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d1593646eb38e026826bab98442a63823bf1ad7e90b3a593c719003dfc9c6a8e.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d2709bdaa3d1607d48caec13279ef6a47b160b06aa661204d880b6f6d4737378.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d46a05966d9dd4350cccefd95ffbf7323f11a2391e1dd74905badd617885976b.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d4881611a118a79a755972edb36b524b90880f49996582f29399964b1e023a8e.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d506c006b10a90587a3d979518d0dd3e8c468a734ac268b34f355dd1a1b7e8fe.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d5258dbbeeb58b94f3e79a3f7126257f448b8f1aad20e8d09b1872cea19c6cea.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d5c35dda153d9581e077c9e1ff5e604ef4a8d865aea99091c81d6bab2fe8be71.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d7f1aa61f8f058bf79b422446182054c2b2934a8033508036ef0ff922658b7b5.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d89aa0053ef4743ea97b5483c45139b53afcf2595d5915581cdba3c0ade398d1.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d8a91f1befb3de0324a10fc1230809167e32988695a9ed60ca549a04f7d8be9c.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/dac1ef33812d2b3b670876cf699ef40cb25b3c8311bb3245be70a59e644fda4c.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/df5b0111f6310642d6179273f94074975ae4d41331733a61052505abaaae0410.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/df613f2157a612b414ec4cf0a4edb06907a8c7deccba64a158e0f7e1a58480a3.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/e2f70b087d3d17367cd184e57e8d8bd18db70a450a9ebeee2b16d1dd4496b53f.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/e44bce26a32d19b3e8492f2dc6f41f59be0c24e0f666faeb083c262a8c95d996.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f0d9e5c7bb81284a5566ffc4c87e6d0b62cad07a3de458aa594bbfd86a386ff8.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f38b3b8fe2d2d91f9bcae97d8b3e818e9b63d752713549a1bd4f78f13c93d7d9.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f8dfa9c1ea9308abec2bb73d80cc9f92faac76376abae0b390df6f5537b3b4a9.json create mode 100644 Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/fd6005d79d7598ab842b457915b0109c26f1f1bd751c17600530a085b28b6b39.json delete mode 100644 Src/command_center/web-command-center/frontend/src/views/MapView.vue delete mode 100644 Src/command_center/web-command-center/frontend/src/views/PathPlanningView.vue delete mode 100644 Src/command_center/web-command-center/frontend/src/views/ThreatZoneView.vue diff --git a/Src/command_center/web-command-center/CHANGES_SUMMARY.md b/Src/command_center/web-command-center/CHANGES_SUMMARY.md new file mode 100644 index 00000000..0519ecba --- /dev/null +++ b/Src/command_center/web-command-center/CHANGES_SUMMARY.md @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Src/command_center/web-command-center/README_UNIFIED_MAP.md b/Src/command_center/web-command-center/README_UNIFIED_MAP.md new file mode 100644 index 00000000..52eacbf2 --- /dev/null +++ b/Src/command_center/web-command-center/README_UNIFIED_MAP.md @@ -0,0 +1,131 @@ +# 无人机指挥中心 - 集成地图功能说明 + +## 概述 + +原本的系统有三个分离的地图界面: +- 地图视图 (MapView.vue) +- 威胁区设置 (ThreatZoneView.vue) +- 路径规划 (PathPlanningView.vue) + +现在已经集成为一个统一的地图界面 (UnifiedMapView.vue),包含所有三个功能的完整实现。 + +## 功能特性 + +### 1. 地图视图功能 +- ✅ 无人机标记显示和隐藏 +- ✅ 无人机信息窗体(点击显示详情) +- ✅ 目标点添加(点击地图添加) +- ✅ 目标点清除功能 +- ✅ 地图样式切换(标准/卫星/暗色) +- ✅ 2D/3D视图切换 +- ✅ 图层叠加控制 + +### 2. 威胁区设置功能 +- ✅ 威胁区类型选择(雷达/导弹/空中/地面/气象) +- ✅ 绘制工具(圆形/多边形/矩形区域) +- ✅ 威胁等级设置(低/中/高/严重) +- ✅ 威胁区参数配置(半径、描述、时间范围) +- ✅ 威胁区列表管理 +- ✅ 威胁区编辑/删除功能 +- ✅ 图层显示控制 +- ✅ 威胁区高亮选择 + +### 3. 路径规划功能 +- ✅ 无人机选择 +- ✅ 路径点添加(点击地图) +- ✅ 路径点管理(删除、重新排序) +- ✅ 规划算法选择(A*/RRT/直线) +- ✅ 飞行参数设置(高度、速度) +- ✅ 路径信息计算(距离、时间、点数) +- ✅ 路径执行功能 +- ✅ 地图视图控制(适合路径、定位起终点) + +## 技术实现 + +### 核心组件 + +1. **UnifiedMapView.vue** - 主容器组件 + - 集成三个功能面板 + - 统一的地图实例管理 + - 事件分发和状态管理 + +2. **SharedMap.vue** - 共享地图组件 + - 高德地图API封装 + - 支持多种插件(MouseTool, PolyEditor等) + - 地图样式和控件管理 + +3. **面板组件** + - BasicMapPanel.vue - 基础地图控制 + - ThreatZonePanel.vue - 威胁区设置面板 + - PathPlanningPanel.vue - 路径规划面板 + +### 关键功能 + +#### 地图操作 +```javascript +// 目标点添加 +const addTargetPoint = (lng, lat) => { + // 创建标记,添加到地图 +} + +// 威胁区绘制 +const setDrawMode = (mode) => { + // 启用鼠标绘制工具 + mouseTool.value.circle(options) // 圆形 + mouseTool.value.polygon(options) // 多边形 + mouseTool.value.rectangle(options) // 矩形 +} + +// 路径规划 +const addPathPoint = (lng, lat) => { + // 添加路径点并绘制连接线 +} +``` + +#### 状态管理 +- 使用 Vuex store 管理无人机数据 +- 响应式状态更新 +- 面板间状态同步 + +## 使用方法 + +### 1. 切换功能模式 +通过顶部选项卡切换: +- 地图视图 - 基础地图操作和目标点管理 +- 威胁区设置 - 威胁区域绘制和管理 +- 路径规划 - 无人机路径规划和执行 + +### 2. 地图交互 +- **添加模式**: 启用后点击地图添加目标点或路径点 +- **绘制模式**: 选择绘制工具后在地图上绘制威胁区 +- **选择模式**: 点击已有元素进行选择和编辑 + +### 3. 数据持久化 +- 威胁区数据可导出/导入 +- 路径规划结果可保存 +- 无人机状态实时同步 + +## 浏览器访问 + +启动前端服务: +```bash +cd web-command-center/frontend +npm run serve +``` + +访问 `http://localhost:8080/map` 查看集成地图界面。 + +## 注意事项 + +1. **API密钥**: 确保高德地图API密钥有效 +2. **后端服务**: 无人机数据需要后端API支持 +3. **浏览器兼容**: 推荐使用Chrome/Firefox最新版本 +4. **性能优化**: 大量标记时建议启用聚合显示 + +## 后续优化 + +- [ ] 实时数据推送 +- [ ] 更多地图图层支持 +- [ ] 威胁区避让算法 +- [ ] 路径优化算法 +- [ ] 多无人机协同规划 \ No newline at end of file diff --git a/Src/command_center/web-command-center/backend/src/routes/threatZones.js b/Src/command_center/web-command-center/backend/src/routes/threatZones.js index 23066ec4..d8fa3451 100644 --- a/Src/command_center/web-command-center/backend/src/routes/threatZones.js +++ b/Src/command_center/web-command-center/backend/src/routes/threatZones.js @@ -1,58 +1,6 @@ const express = require('express') const router = express.Router() - -// 存储威胁区数据(实际项目中应使用数据库) -let threatZones = [ - { - id: 1, - type: 'radar', - level: 'high', - description: '敌方雷达基站', - geometry: { - type: 'circle', - center: [116.397428, 39.91], - radius: 2000 - }, - timeRange: ['2024-01-01T00:00:00', '2024-12-31T23:59:59'], - status: 'active', - createdAt: new Date('2024-01-01T10:00:00'), - updatedAt: new Date('2024-01-01T10:00:00') - }, - { - id: 2, - type: 'missile', - level: 'critical', - description: '导弹发射阵地', - geometry: { - type: 'circle', - center: [116.42, 39.89], - radius: 3000 - }, - timeRange: ['2024-01-01T00:00:00', '2024-12-31T23:59:59'], - status: 'active', - createdAt: new Date('2024-01-01T11:00:00'), - updatedAt: new Date('2024-01-01T11:00:00') - }, - { - id: 3, - type: 'aircraft', - level: 'medium', - description: '空中巡逻区域', - geometry: { - type: 'polygon', - path: [ - [116.38, 39.92], - [116.40, 39.92], - [116.40, 39.90], - [116.38, 39.90] - ] - }, - timeRange: ['2024-01-01T06:00:00', '2024-01-01T18:00:00'], - status: 'active', - createdAt: new Date('2024-01-01T09:00:00'), - updatedAt: new Date('2024-01-01T09:00:00') - } -] +const db = require('../config/database') // 威胁类型配置 const threatTypes = { @@ -117,45 +65,72 @@ const threatLevels = { } // 获取所有威胁区 -router.get('/', (req, res) => { +router.get('/', async (req, res) => { try { const { type, level, status, active } = req.query - let filteredZones = [...threatZones] + let sql = ` + SELECT + id, type, level, description, geometry_type, geometry_data, + time_start, time_end, status, created_by, created_at, updated_at + FROM threat_zones + WHERE 1=1 + ` + const params = [] // 按类型筛选 if (type) { - filteredZones = filteredZones.filter(zone => zone.type === type) + sql += ' AND type = ?' + params.push(type) } // 按威胁等级筛选 if (level) { - filteredZones = filteredZones.filter(zone => zone.level === level) + sql += ' AND level = ?' + params.push(level) } // 按状态筛选 if (status) { - filteredZones = filteredZones.filter(zone => zone.status === status) + sql += ' AND status = ?' + params.push(status) } // 按时间范围筛选(当前时间是否在威胁区有效期内) if (active === 'true') { - const now = new Date() - filteredZones = filteredZones.filter(zone => { - if (!zone.timeRange || zone.timeRange.length < 2) return true - const startTime = new Date(zone.timeRange[0]) - const endTime = new Date(zone.timeRange[1]) - return now >= startTime && now <= endTime - }) + sql += ' AND (time_start IS NULL OR time_start <= NOW()) AND (time_end IS NULL OR time_end >= NOW())' } + sql += ' ORDER BY created_at DESC' + + const [rows] = await db.execute(sql, params) + + // 转换数据格式,兼容前端 + const threatZones = rows.map(row => ({ + id: row.id, + type: row.type, + level: row.level, + description: row.description, + geometry: { + type: row.geometry_type, + ...row.geometry_data + }, + timeRange: [row.time_start, row.time_end], + status: row.status, + createdAt: row.created_at, + updatedAt: row.updated_at, + typeConfig: threatTypes[row.type], + levelConfig: threatLevels[row.level] + })) + res.json({ success: true, - data: filteredZones, - total: filteredZones.length, + data: threatZones, + total: threatZones.length, message: '获取威胁区列表成功' }) } catch (error) { + console.error('获取威胁区列表失败:', error) res.status(500).json({ success: false, message: '获取威胁区列表失败', @@ -165,31 +140,47 @@ router.get('/', (req, res) => { }) // 获取单个威胁区详情 -router.get('/:id', (req, res) => { +router.get('/:id', async (req, res) => { try { const id = parseInt(req.params.id) - const zone = threatZones.find(z => z.id === id) - if (!zone) { + const [rows] = await db.execute( + 'SELECT * FROM threat_zones WHERE id = ?', + [id] + ) + + if (rows.length === 0) { return res.status(404).json({ success: false, message: '威胁区不存在' }) } - // 添加威胁区配置信息 - const zoneWithConfig = { - ...zone, - typeConfig: threatTypes[zone.type], - levelConfig: threatLevels[zone.level] + const row = rows[0] + const zone = { + id: row.id, + type: row.type, + level: row.level, + description: row.description, + geometry: { + type: row.geometry_type, + ...row.geometry_data + }, + timeRange: [row.time_start, row.time_end], + status: row.status, + createdAt: row.created_at, + updatedAt: row.updated_at, + typeConfig: threatTypes[row.type], + levelConfig: threatLevels[row.level] } res.json({ success: true, - data: zoneWithConfig, + data: zone, message: '获取威胁区详情成功' }) } catch (error) { + console.error('获取威胁区详情失败:', error) res.status(500).json({ success: false, message: '获取威胁区详情失败', @@ -198,16 +189,16 @@ router.get('/:id', (req, res) => { } }) -// 创建新威胁区 -router.post('/', (req, res) => { +// 创建威胁区 +router.post('/', async (req, res) => { try { - const { type, level, description, geometry, timeRange } = req.body + const { type, level, description, geometry, timeRange, status = 'active' } = req.body - // 验证必填字段 + // 验证必需字段 if (!type || !level || !geometry) { return res.status(400).json({ success: false, - message: '请提供威胁类型、威胁等级和几何信息' + message: '威胁类型、威胁等级和几何形状为必需字段' }) } @@ -215,7 +206,7 @@ router.post('/', (req, res) => { if (!threatTypes[type]) { return res.status(400).json({ success: false, - message: '不支持的威胁类型' + message: '无效的威胁类型' }) } @@ -223,38 +214,71 @@ router.post('/', (req, res) => { if (!threatLevels[level]) { return res.status(400).json({ success: false, - message: '不支持的威胁等级' + message: '无效的威胁等级' }) } - // 验证几何信息 - if (!validateGeometry(geometry)) { + // 验证几何形状 + const validationResult = validateGeometry(geometry) + if (!validationResult.valid) { return res.status(400).json({ success: false, - message: '无效的几何信息' + message: `无效的几何形状: ${validationResult.error}` }) } + // 准备几何数据 + const geometryData = { ...geometry } + delete geometryData.type + + // 处理时间范围 + const timeStart = timeRange && timeRange[0] ? new Date(timeRange[0]) : null + const timeEnd = timeRange && timeRange[1] ? new Date(timeRange[1]) : null + + const [result] = await db.execute( + `INSERT INTO threat_zones + (type, level, description, geometry_type, geometry_data, time_start, time_end, status) + VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, + [ + type, + level, + description || '', + geometry.type, + JSON.stringify(geometryData), + timeStart, + timeEnd, + status + ] + ) + + // 获取创建的威胁区 + const [newRows] = await db.execute( + 'SELECT * FROM threat_zones WHERE id = ?', + [result.insertId] + ) + const newZone = { - id: Math.max(...threatZones.map(z => z.id), 0) + 1, - type, - level, - description: description || '', - geometry, - timeRange: timeRange || null, - status: 'active', - createdAt: new Date(), - updatedAt: new Date() + id: newRows[0].id, + type: newRows[0].type, + level: newRows[0].level, + description: newRows[0].description, + geometry: { + type: newRows[0].geometry_type, + ...newRows[0].geometry_data + }, + timeRange: [newRows[0].time_start, newRows[0].time_end], + status: newRows[0].status, + createdAt: newRows[0].created_at, + updatedAt: newRows[0].updated_at } - threatZones.push(newZone) - res.status(201).json({ success: true, data: newZone, message: '威胁区创建成功' }) } catch (error) { + console.error('创建威胁区失败:', error) res.status(500).json({ success: false, message: '创建威胁区失败', @@ -264,59 +288,132 @@ router.post('/', (req, res) => { }) // 更新威胁区 -router.put('/:id', (req, res) => { +router.put('/:id', async (req, res) => { try { const id = parseInt(req.params.id) - const zoneIndex = threatZones.findIndex(z => z.id === id) + const { type, level, description, geometry, timeRange, status } = req.body + + // 检查威胁区是否存在 + const [existingRows] = await db.execute( + 'SELECT id FROM threat_zones WHERE id = ?', + [id] + ) - if (zoneIndex === -1) { + if (existingRows.length === 0) { return res.status(404).json({ success: false, message: '威胁区不存在' }) } - const { type, level, description, geometry, timeRange, status } = req.body - const zone = threatZones[zoneIndex] + // 验证威胁类型 + if (type && !threatTypes[type]) { + return res.status(400).json({ + success: false, + message: '无效的威胁类型' + }) + } + + // 验证威胁等级 + if (level && !threatLevels[level]) { + return res.status(400).json({ + success: false, + message: '无效的威胁等级' + }) + } - // 更新威胁类型 - if (type && threatTypes[type]) { - zone.type = type + // 验证几何形状 + if (geometry) { + const validationResult = validateGeometry(geometry) + if (!validationResult.valid) { + return res.status(400).json({ + success: false, + message: `无效的几何形状: ${validationResult.error}` + }) + } } - // 更新威胁等级 - if (level && threatLevels[level]) { - zone.level = level + // 构建更新SQL + const updateFields = [] + const params = [] + + if (type) { + updateFields.push('type = ?') + params.push(type) + } + + if (level) { + updateFields.push('level = ?') + params.push(level) } - // 更新描述 if (description !== undefined) { - zone.description = description + updateFields.push('description = ?') + params.push(description) + } + + if (geometry) { + updateFields.push('geometry_type = ?, geometry_data = ?') + const geometryData = { ...geometry } + delete geometryData.type + params.push(geometry.type, JSON.stringify(geometryData)) } - // 更新几何信息 - if (geometry && validateGeometry(geometry)) { - zone.geometry = geometry + if (timeRange) { + updateFields.push('time_start = ?, time_end = ?') + params.push( + timeRange[0] ? new Date(timeRange[0]) : null, + timeRange[1] ? new Date(timeRange[1]) : null + ) } - // 更新时间范围 - if (timeRange !== undefined) { - zone.timeRange = timeRange + if (status) { + updateFields.push('status = ?') + params.push(status) } - // 更新状态 - if (status && ['active', 'inactive', 'expired'].includes(status)) { - zone.status = status + if (updateFields.length === 0) { + return res.status(400).json({ + success: false, + message: '没有提供要更新的字段' + }) } - zone.updatedAt = new Date() + params.push(id) + + await db.execute( + `UPDATE threat_zones SET ${updateFields.join(', ')} WHERE id = ?`, + params + ) + + // 获取更新后的威胁区 + const [updatedRows] = await db.execute( + 'SELECT * FROM threat_zones WHERE id = ?', + [id] + ) + + const updatedZone = { + id: updatedRows[0].id, + type: updatedRows[0].type, + level: updatedRows[0].level, + description: updatedRows[0].description, + geometry: { + type: updatedRows[0].geometry_type, + ...updatedRows[0].geometry_data + }, + timeRange: [updatedRows[0].time_start, updatedRows[0].time_end], + status: updatedRows[0].status, + createdAt: updatedRows[0].created_at, + updatedAt: updatedRows[0].updated_at + } res.json({ success: true, - data: zone, + data: updatedZone, message: '威胁区更新成功' }) } catch (error) { + console.error('更新威胁区失败:', error) res.status(500).json({ success: false, message: '更新威胁区失败', @@ -326,25 +423,31 @@ router.put('/:id', (req, res) => { }) // 删除威胁区 -router.delete('/:id', (req, res) => { +router.delete('/:id', async (req, res) => { try { const id = parseInt(req.params.id) - const zoneIndex = threatZones.findIndex(z => z.id === id) - if (zoneIndex === -1) { + // 检查威胁区是否存在 + const [existingRows] = await db.execute( + 'SELECT id FROM threat_zones WHERE id = ?', + [id] + ) + + if (existingRows.length === 0) { return res.status(404).json({ success: false, message: '威胁区不存在' }) } - threatZones.splice(zoneIndex, 1) + await db.execute('DELETE FROM threat_zones WHERE id = ?', [id]) res.json({ success: true, message: '威胁区删除成功' }) } catch (error) { + console.error('删除威胁区失败:', error) res.status(500).json({ success: false, message: '删除威胁区失败', @@ -354,310 +457,90 @@ router.delete('/:id', (req, res) => { }) // 批量删除威胁区 -router.delete('/batch/:ids', (req, res) => { +router.delete('/', async (req, res) => { try { - const ids = req.params.ids.split(',').map(id => parseInt(id)) - - const deletedZones = [] - const notFoundIds = [] - - ids.forEach(id => { - const zoneIndex = threatZones.findIndex(z => z.id === id) - if (zoneIndex !== -1) { - deletedZones.push(threatZones.splice(zoneIndex, 1)[0]) - } else { - notFoundIds.push(id) - } - }) - - let message = `成功删除${deletedZones.length}个威胁区` - if (notFoundIds.length > 0) { - message += `,${notFoundIds.length}个威胁区不存在` - } + const { ids } = req.body - res.json({ - success: true, - data: { - deleted: deletedZones.length, - notFound: notFoundIds.length, - notFoundIds - }, - message - }) - } catch (error) { - res.status(500).json({ - success: false, - message: '批量删除威胁区失败', - error: error.message - }) - } -}) - -// 获取威胁类型列表 -router.get('/types/list', (req, res) => { - try { - res.json({ - success: true, - data: threatTypes, - message: '获取威胁类型列表成功' - }) - } catch (error) { - res.status(500).json({ - success: false, - message: '获取威胁类型列表失败', - error: error.message - }) - } -}) - -// 获取威胁等级列表 -router.get('/levels/list', (req, res) => { - try { - res.json({ - success: true, - data: threatLevels, - message: '获取威胁等级列表成功' - }) - } catch (error) { - res.status(500).json({ - success: false, - message: '获取威胁等级列表失败', - error: error.message - }) - } -}) - -// 检查坐标是否在威胁区内 -router.post('/check-point', (req, res) => { - try { - const { lng, lat, types, levels } = req.body - - if (typeof lng !== 'number' || typeof lat !== 'number') { + if (!ids || !Array.isArray(ids) || ids.length === 0) { return res.status(400).json({ success: false, - message: '请提供有效的经纬度坐标' + message: '请提供要删除的威胁区ID列表' }) } - let activeZones = threatZones.filter(zone => zone.status === 'active') - - // 按类型筛选 - if (types && Array.isArray(types)) { - activeZones = activeZones.filter(zone => types.includes(zone.type)) - } - - // 按等级筛选 - if (levels && Array.isArray(levels)) { - activeZones = activeZones.filter(zone => levels.includes(zone.level)) - } - - const threatsFound = [] - - activeZones.forEach(zone => { - if (isPointInThreatZone(lng, lat, zone)) { - threatsFound.push({ - id: zone.id, - type: zone.type, - level: zone.level, - description: zone.description, - typeConfig: threatTypes[zone.type], - levelConfig: threatLevels[zone.level] - }) - } - }) - - // 按威胁等级优先级排序 - threatsFound.sort((a, b) => b.levelConfig.priority - a.levelConfig.priority) + const placeholders = ids.map(() => '?').join(',') + const [result] = await db.execute( + `DELETE FROM threat_zones WHERE id IN (${placeholders})`, + ids + ) res.json({ success: true, data: { - point: { lng, lat }, - inThreatZone: threatsFound.length > 0, - threatsCount: threatsFound.length, - threats: threatsFound, - highestThreat: threatsFound[0] || null + deletedCount: result.affectedRows }, - message: threatsFound.length > 0 ? '坐标位于威胁区内' : '坐标安全' - }) - } catch (error) { - res.status(500).json({ - success: false, - message: '检查威胁区失败', - error: error.message - }) - } -}) - -// 获取威胁区统计信息 -router.get('/stats/summary', (req, res) => { - try { - const stats = { - total: threatZones.length, - active: threatZones.filter(z => z.status === 'active').length, - inactive: threatZones.filter(z => z.status === 'inactive').length, - expired: threatZones.filter(z => z.status === 'expired').length, - byType: {}, - byLevel: {}, - coverage: 0 // 威胁区覆盖面积(简化计算) - } - - // 按类型统计 - Object.keys(threatTypes).forEach(type => { - stats.byType[type] = threatZones.filter(z => z.type === type).length - }) - - // 按等级统计 - Object.keys(threatLevels).forEach(level => { - stats.byLevel[level] = threatZones.filter(z => z.level === level).length - }) - - // 计算覆盖面积(简化:仅计算圆形威胁区) - stats.coverage = threatZones - .filter(z => z.geometry.type === 'circle' && z.status === 'active') - .reduce((total, zone) => { - const radius = zone.geometry.radius || 0 - return total + Math.PI * radius * radius - }, 0) - - res.json({ - success: true, - data: stats, - message: '获取威胁区统计成功' + message: `成功删除${result.affectedRows}个威胁区` }) } catch (error) { + console.error('批量删除威胁区失败:', error) res.status(500).json({ success: false, - message: '获取威胁区统计失败', + message: '批量删除威胁区失败', error: error.message }) } }) -// 导出威胁区数据 -router.get('/export/data', (req, res) => { - try { - const { format = 'json' } = req.query - - if (format === 'json') { - res.json({ - success: true, - data: { - threatZones, - threatTypes, - threatLevels, - exportTime: new Date(), - version: '1.0' - }, - message: '威胁区数据导出成功' - }) - } else { - res.status(400).json({ - success: false, - message: '不支持的导出格式' - }) - } - } catch (error) { - res.status(500).json({ - success: false, - message: '导出威胁区数据失败', - error: error.message - }) - } +// 获取威胁区配置信息 +router.get('/config/types', (req, res) => { + res.json({ + success: true, + data: { + types: threatTypes, + levels: threatLevels + }, + message: '获取威胁区配置成功' + }) }) -// 验证几何信息 +// 验证几何形状 function validateGeometry(geometry) { - if (!geometry || !geometry.type) return false - - switch (geometry.type) { - case 'circle': - return geometry.center && - Array.isArray(geometry.center) && - geometry.center.length === 2 && - typeof geometry.radius === 'number' && - geometry.radius > 0 - - case 'polygon': - return geometry.path && - Array.isArray(geometry.path) && - geometry.path.length >= 3 && - geometry.path.every(point => - Array.isArray(point) && point.length === 2 - ) - - case 'rectangle': - return geometry.bounds && - Array.isArray(geometry.bounds) && - geometry.bounds.length === 4 - - default: - return false + if (!geometry || !geometry.type) { + return { valid: false, error: '缺少几何形状类型' } } -} - -// 检查点是否在威胁区内 -function isPointInThreatZone(lng, lat, zone) { - const { geometry } = zone switch (geometry.type) { case 'circle': - return isPointInCircle(lng, lat, geometry.center, geometry.radius) - + if (!geometry.center || !Array.isArray(geometry.center) || geometry.center.length !== 2) { + return { valid: false, error: '圆形需要有效的中心点坐标' } + } + if (!geometry.radius || geometry.radius <= 0) { + return { valid: false, error: '圆形需要有效的半径' } + } + break + case 'polygon': - return isPointInPolygon(lng, lat, geometry.path) - + if (!geometry.path || !Array.isArray(geometry.path) || geometry.path.length < 3) { + return { valid: false, error: '多边形需要至少3个点' } + } + for (const point of geometry.path) { + if (!Array.isArray(point) || point.length !== 2) { + return { valid: false, error: '多边形的点必须是[经度, 纬度]格式' } + } + } + break + case 'rectangle': - return isPointInRectangle(lng, lat, geometry.bounds) - + if (!geometry.bounds || !Array.isArray(geometry.bounds) || geometry.bounds.length !== 4) { + return { valid: false, error: '矩形需要有效的边界[南纬, 西经, 北纬, 东经]' } + } + break + default: - return false + return { valid: false, error: '不支持的几何形状类型' } } -} - -// 检查点是否在圆形内 -function isPointInCircle(lng, lat, center, radius) { - const distance = getDistance(lat, lng, center[1], center[0]) - return distance <= radius -} - -// 检查点是否在多边形内(射线法) -function isPointInPolygon(lng, lat, path) { - let inside = false - for (let i = 0, j = path.length - 1; i < path.length; j = i++) { - const xi = path[i][0], yi = path[i][1] - const xj = path[j][0], yj = path[j][1] - - if (((yi > lat) !== (yj > lat)) && - (lng < (xj - xi) * (lat - yi) / (yj - yi) + xi)) { - inside = !inside - } - } - - return inside -} - -// 检查点是否在矩形内 -function isPointInRectangle(lng, lat, bounds) { - const [minLng, minLat, maxLng, maxLat] = bounds - return lng >= minLng && lng <= maxLng && lat >= minLat && lat <= maxLat -} - -// 计算两点间距离(Haversine公式) -function getDistance(lat1, lng1, lat2, lng2) { - const R = 6371e3 // 地球半径(米) - const φ1 = lat1 * Math.PI/180 - const φ2 = lat2 * Math.PI/180 - const Δφ = (lat2-lat1) * Math.PI/180 - const Δλ = (lng2-lng1) * Math.PI/180 - - const a = Math.sin(Δφ/2) * Math.sin(Δφ/2) + - Math.cos(φ1) * Math.cos(φ2) * - Math.sin(Δλ/2) * Math.sin(Δλ/2) - const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)) - - return R * c // 距离(米) + return { valid: true } } module.exports = router \ No newline at end of file diff --git a/Src/command_center/web-command-center/database/init.sql b/Src/command_center/web-command-center/database/init.sql index ce2fb9e2..60f831db 100644 --- a/Src/command_center/web-command-center/database/init.sql +++ b/Src/command_center/web-command-center/database/init.sql @@ -1,5 +1,5 @@ -- 创建数据库 -CREATE DATABASE IF NOT EXISTS command_center; +CREATE DATABASE IF NOT EXISTS command_center CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE command_center; -- 创建用户表 @@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS users ( role ENUM('admin', 'operator') NOT NULL DEFAULT 'operator', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -); +) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 创建无人机表 CREATE TABLE IF NOT EXISTS drones ( @@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS drones ( battery INT DEFAULT 100, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -); +) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 创建路径规划记录表 CREATE TABLE IF NOT EXISTS path_plans ( @@ -38,7 +38,30 @@ CREATE TABLE IF NOT EXISTS path_plans ( created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, FOREIGN KEY (drone_id) REFERENCES drones(id) -); +) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + +-- 删除现有威胁区表(如果存在)以确保结构正确 +DROP TABLE IF EXISTS threat_zones; + +-- 创建威胁区表 +CREATE TABLE threat_zones ( + id INT PRIMARY KEY AUTO_INCREMENT, + type ENUM('radar', 'missile', 'aircraft', 'ground', 'weather') NOT NULL, + level ENUM('low', 'medium', 'high', 'critical') NOT NULL, + description TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, + geometry_type ENUM('circle', 'polygon', 'rectangle') NOT NULL, + geometry_data JSON NOT NULL COMMENT '存储几何形状数据', + time_start TIMESTAMP NULL COMMENT '威胁区开始时间', + time_end TIMESTAMP NULL COMMENT '威胁区结束时间', + status ENUM('active', 'inactive') NOT NULL DEFAULT 'active', + created_by INT DEFAULT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + FOREIGN KEY (created_by) REFERENCES users(id), + INDEX idx_type (type), + INDEX idx_level (level), + INDEX idx_status (status) +) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 创建操作日志表 CREATE TABLE IF NOT EXISTS operation_logs ( @@ -50,9 +73,27 @@ CREATE TABLE IF NOT EXISTS operation_logs ( details JSON, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) -); +) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 插入默认管理员用户 INSERT INTO users (username, password, role) VALUES ('admin', '$2a$10$X7UrH5QxX5QxX5QxX5QxX.5QxX5QxX5QxX5QxX5QxX5QxX5QxX5Qx', 'admin') -ON DUPLICATE KEY UPDATE username = username; \ No newline at end of file +ON DUPLICATE KEY UPDATE username = username; + +-- 插入示例威胁区数据 +INSERT INTO threat_zones (type, level, description, geometry_type, geometry_data, time_start, time_end, status) +VALUES +('radar', 'high', 'Enemy radar station', 'circle', + JSON_OBJECT('center', JSON_ARRAY(116.397428, 39.91), 'radius', 2000), + '2024-01-01 00:00:00', '2024-12-31 23:59:59', 'active'), +('missile', 'critical', 'Missile launch site', 'circle', + JSON_OBJECT('center', JSON_ARRAY(116.42, 39.89), 'radius', 3000), + '2024-01-01 00:00:00', '2024-12-31 23:59:59', 'active'), +('aircraft', 'medium', 'Air patrol zone', 'polygon', + JSON_OBJECT('path', JSON_ARRAY( + JSON_ARRAY(116.38, 39.92), + JSON_ARRAY(116.40, 39.92), + JSON_ARRAY(116.40, 39.90), + JSON_ARRAY(116.38, 39.90) + )), + '2024-01-01 06:00:00', '2024-01-01 18:00:00', 'active'); \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/03b5f47a64254c436c4d6fecd3b5cbcb95f2024a401abb39cd47c8df2571b24a.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/03b5f47a64254c436c4d6fecd3b5cbcb95f2024a401abb39cd47c8df2571b24a.json new file mode 100644 index 00000000..59bd84b6 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/03b5f47a64254c436c4d6fecd3b5cbcb95f2024a401abb39cd47c8df2571b24a.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const geometry = getGeometryFromOverlay(overlay);\n\n // 验证必需字段\n if (!currentThreatType.value) {\n console.error('威胁类型为空:', currentThreatType.value);\n ElMessage.error('请选择威胁类型');\n return;\n }\n if (!threatLevel.value) {\n console.error('威胁等级为空:', threatLevel.value);\n ElMessage.error('请选择威胁等级');\n return;\n }\n if (!geometry) {\n console.error('几何信息解析失败');\n ElMessage.error('无法解析威胁区形状信息');\n return;\n }\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value || '',\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: geometry\n };\n try {\n console.log('准备发送威胁区数据:', zoneData);\n console.log('当前威胁类型:', currentThreatType.value);\n console.log('当前威胁等级:', threatLevel.value);\n console.log('当前描述:', threatDescription.value);\n console.log('几何信息:', geometry);\n\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n console.log('API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('API错误响应:', errorText);\n throw new Error(`保存威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('API成功响应:', result);\n if (result.success) {\n const zone = result.data;\n\n // 移除原始绘制的覆盖物\n mapInstance.value.remove(overlay);\n\n // 使用统一的渲染函数重新创建覆盖物,确保格式一致\n renderThreatZoneOnMap(zone);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库并重新渲染:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n console.log('解析覆盖物几何信息:', overlay.CLASS_NAME || overlay.className);\n try {\n if (overlay.CLASS_NAME === 'AMap.Circle' || overlay.className === 'Overlay.Circle') {\n const center = overlay.getCenter();\n const radius = overlay.getRadius();\n console.log('圆形几何信息:', {\n center,\n radius\n });\n return {\n type: 'circle',\n center: [center.lng, center.lat],\n radius: radius\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon' || overlay.className === 'Overlay.Polygon') {\n const path = overlay.getPath();\n console.log('多边形几何信息:', path);\n return {\n type: 'polygon',\n path: path.map(point => [point.lng, point.lat])\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle' || overlay.className === 'Overlay.Rectangle') {\n const bounds = overlay.getBounds();\n console.log('矩形几何信息:', bounds);\n return {\n type: 'rectangle',\n bounds: [bounds.getSouthWest().lng, bounds.getSouthWest().lat, bounds.getNorthEast().lng, bounds.getNorthEast().lat]\n };\n }\n } catch (error) {\n console.error('解析几何信息失败:', error);\n }\n console.error('未识别的覆盖物类型:', overlay.CLASS_NAME || overlay.className);\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n console.log('请求URL: /api/threat-zones');\n const response = await fetch('/api/threat-zones');\n console.log('加载API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('加载API错误响应:', errorText);\n throw new Error(`获取威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('加载API成功响应:', result);\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) {\n console.error('地图实例不存在,无法渲染威胁区');\n return;\n }\n try {\n console.log('开始渲染威胁区到地图:', zone);\n const AMap = window.AMap;\n let overlay = null;\n\n // 威胁区样式配置\n const styleOptions = {\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 3,\n strokeOpacity: 1,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n };\n console.log('威胁区样式配置:', styleOptions);\n console.log('威胁区几何信息:', zone.geometry);\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n console.log('创建圆形威胁区:', zone.geometry.center, zone.geometry.radius);\n overlay = new AMap.Circle({\n center: new AMap.LngLat(zone.geometry.center[0], zone.geometry.center[1]),\n radius: zone.geometry.radius,\n ...styleOptions\n });\n } else if (zone.geometry.type === 'polygon') {\n console.log('创建多边形威胁区:', zone.geometry.path);\n const path = zone.geometry.path.map(point => new AMap.LngLat(point[0], point[1]));\n overlay = new AMap.Polygon({\n path: path,\n ...styleOptions\n });\n } else if (zone.geometry.type === 'rectangle') {\n console.log('创建矩形威胁区:', zone.geometry.bounds);\n const bounds = new AMap.Bounds(new AMap.LngLat(zone.geometry.bounds[0], zone.geometry.bounds[1]), new AMap.LngLat(zone.geometry.bounds[2], zone.geometry.bounds[3]));\n overlay = new AMap.Rectangle({\n bounds: bounds,\n ...styleOptions\n });\n }\n if (overlay) {\n console.log('威胁区覆盖物创建成功,添加到地图');\n\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 检查威胁区是否已在列表中,避免重复添加\n const existingIndex = threatZones.value.findIndex(z => z.id === zone.id);\n if (existingIndex === -1) {\n threatZones.value.push(zone);\n console.log('威胁区已添加到列表');\n } else {\n console.log('威胁区已存在列表中,跳过添加');\n }\n\n // 添加点击事件\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log(`威胁区 ${zone.id} 已成功渲染到地图`);\n } else {\n console.error('威胁区覆盖物创建失败');\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = async () => {\n try {\n console.log('开始更新威胁区:', editForm.value.id);\n const response = await fetch(`/api/threat-zones/${editForm.value.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n type: editForm.value.type,\n level: editForm.value.level,\n description: editForm.value.description\n })\n });\n if (!response.ok) {\n throw new Error('更新威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 更新本地数据\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n }\n ElMessage.success('威胁区已更新');\n console.log('威胁区更新成功:', result.data);\n } else {\n throw new Error(result.message || '更新威胁区失败');\n }\n } catch (error) {\n console.error('更新威胁区失败:', error);\n ElMessage.error('更新威胁区失败: ' + error.message);\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = async (skipConfirm = false) => {\n try {\n if (!skipConfirm && threatZones.value.length > 0) {\n // 批量删除所有威胁区\n const zoneIds = threatZones.value.map(zone => zone.id);\n console.log('开始批量删除威胁区:', zoneIds);\n const response = await fetch('/api/threat-zones', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n ids: zoneIds\n })\n });\n if (!response.ok) {\n throw new Error('批量删除威胁区失败');\n }\n const result = await response.json();\n if (!result.success) {\n throw new Error(result.message || '批量删除威胁区失败');\n }\n console.log('威胁区批量删除成功:', result.data);\n }\n\n // 从地图移除所有覆盖物\n Object.values(zoneOverlays).forEach(overlay => {\n if (mapInstance.value) {\n mapInstance.value.remove(overlay);\n }\n });\n\n // 清空数据\n threatZones.value = [];\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n if (!skipConfirm) {\n ElMessage.success('已清除所有威胁区');\n }\n } catch (error) {\n console.error('清除威胁区失败:', error);\n if (!skipConfirm) {\n ElMessage.error('清除威胁区失败: ' + error.message);\n }\n }\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","addTestThreatZone","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","getGeometryFromOverlay","zoneData","response","fetch","method","headers","body","JSON","stringify","statusText","ok","errorText","text","Error","result","json","zone","data","renderThreatZoneOnMap","getCenter","getRadius","path","getPath","point","bounds","getBounds","getSouthWest","getNorthEast","clearAllZones","LngLat","Polygon","Bounds","Rectangle","existingIndex","findIndex","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","skipConfirm","zoneIds","ids","keys","key","updateLayerVisibility","layers","includes","fitToZones","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/063cdc60c01d5d6b048c4309d74cd210e5ec90724be9a3822da519fa70cb28eb.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/063cdc60c01d5d6b048c4309d74cd210e5ec90724be9a3822da519fa70cb28eb.json new file mode 100644 index 00000000..c24a2166 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/063cdc60c01d5d6b048c4309d74cd210e5ec90724be9a3822da519fa70cb28eb.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n try {\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n if (!response.ok) {\n throw new Error('保存威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n const zone = result.data;\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n const response = await fetch('/api/threat-zones');\n if (!response.ok) {\n throw new Error('获取威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n let overlay = null;\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n overlay = new AMap.Circle({\n center: zone.geometry.center,\n radius: zone.geometry.radius,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'polygon') {\n overlay = new AMap.Polygon({\n path: zone.geometry.path,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'rectangle') {\n overlay = new AMap.Rectangle({\n bounds: zone.geometry.bounds,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n }\n if (overlay) {\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n\n // 添加点击事件\n overlay.on('click', () => {\n selectZone(zone.id);\n });\n console.log(`威胁区 ${zone.id} 已渲染到地图`);\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n // 清空非响应式对象\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zoneData","getGeometryFromOverlay","response","fetch","method","headers","body","JSON","stringify","ok","Error","result","json","zone","data","getCenter","getRadius","path","getPath","bounds","getBounds","clearAllZones","renderThreatZoneOnMap","Polygon","Rectangle","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/0ce8e478c54b703e25462721a701b2050f9175baff63fd79b033ff7385ba126c.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/0ce8e478c54b703e25462721a701b2050f9175baff63fd79b033ff7385ba126c.json new file mode 100644 index 00000000..0f4ef868 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/0ce8e478c54b703e25462721a701b2050f9175baff63fd79b033ff7385ba126c.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/1063e17fb522be0f1a443f219b65f315b037c7377844598da13a21da28ac0ee4.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/1063e17fb522be0f1a443f219b65f315b037c7377844598da13a21da28ac0ee4.json new file mode 100644 index 00000000..b1f1010f --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/1063e17fb522be0f1a443f219b65f315b037c7377844598da13a21da28ac0ee4.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/138242505d77b430829d323926aeae3a72d93df62a9267c6f06801df4d2d2d88.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/138242505d77b430829d323926aeae3a72d93df62a9267c6f06801df4d2d2d88.json new file mode 100644 index 00000000..7851ab76 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/138242505d77b430829d323926aeae3a72d93df62a9267c6f06801df4d2d2d88.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/13e87d8291716666317d5a3edd44d46a2a96acf78c8365cad69e4eee2f0f4b94.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/13e87d8291716666317d5a3edd44d46a2a96acf78c8365cad69e4eee2f0f4b94.json new file mode 100644 index 00000000..bcee90cc --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/13e87d8291716666317d5a3edd44d46a2a96acf78c8365cad69e4eee2f0f4b94.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n try {\n console.log('准备发送威胁区数据:', zoneData);\n\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n console.log('API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('API错误响应:', errorText);\n throw new Error(`保存威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('API成功响应:', result);\n if (result.success) {\n const zone = result.data;\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n console.log('请求URL: /api/threat-zones');\n const response = await fetch('/api/threat-zones');\n console.log('加载API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('加载API错误响应:', errorText);\n throw new Error(`获取威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('加载API成功响应:', result);\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n let overlay = null;\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n overlay = new AMap.Circle({\n center: zone.geometry.center,\n radius: zone.geometry.radius,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'polygon') {\n overlay = new AMap.Polygon({\n path: zone.geometry.path,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'rectangle') {\n overlay = new AMap.Rectangle({\n bounds: zone.geometry.bounds,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n }\n if (overlay) {\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n\n // 添加点击事件\n overlay.on('click', () => {\n selectZone(zone.id);\n });\n console.log(`威胁区 ${zone.id} 已渲染到地图`);\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = async () => {\n try {\n console.log('开始更新威胁区:', editForm.value.id);\n const response = await fetch(`/api/threat-zones/${editForm.value.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n type: editForm.value.type,\n level: editForm.value.level,\n description: editForm.value.description\n })\n });\n if (!response.ok) {\n throw new Error('更新威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 更新本地数据\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n }\n ElMessage.success('威胁区已更新');\n console.log('威胁区更新成功:', result.data);\n } else {\n throw new Error(result.message || '更新威胁区失败');\n }\n } catch (error) {\n console.error('更新威胁区失败:', error);\n ElMessage.error('更新威胁区失败: ' + error.message);\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = async (skipConfirm = false) => {\n try {\n if (!skipConfirm && threatZones.value.length > 0) {\n // 批量删除所有威胁区\n const zoneIds = threatZones.value.map(zone => zone.id);\n console.log('开始批量删除威胁区:', zoneIds);\n const response = await fetch('/api/threat-zones', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n ids: zoneIds\n })\n });\n if (!response.ok) {\n throw new Error('批量删除威胁区失败');\n }\n const result = await response.json();\n if (!result.success) {\n throw new Error(result.message || '批量删除威胁区失败');\n }\n console.log('威胁区批量删除成功:', result.data);\n }\n\n // 从地图移除所有覆盖物\n Object.values(zoneOverlays).forEach(overlay => {\n if (mapInstance.value) {\n mapInstance.value.remove(overlay);\n }\n });\n\n // 清空数据\n threatZones.value = [];\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n if (!skipConfirm) {\n ElMessage.success('已清除所有威胁区');\n }\n } catch (error) {\n console.error('清除威胁区失败:', error);\n if (!skipConfirm) {\n ElMessage.error('清除威胁区失败: ' + error.message);\n }\n }\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","addTestThreatZone","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zoneData","getGeometryFromOverlay","response","fetch","method","headers","body","JSON","stringify","statusText","ok","errorText","text","Error","result","json","zone","data","getCenter","getRadius","path","getPath","bounds","getBounds","clearAllZones","renderThreatZoneOnMap","Polygon","Rectangle","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","skipConfirm","zoneIds","ids","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/17da194749c028b8e85ec1d876d419fdd95077fadd4615f76a6f759031b17378.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/17da194749c028b8e85ec1d876d419fdd95077fadd4615f76a6f759031b17378.json new file mode 100644 index 00000000..5c771b9d --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/17da194749c028b8e85ec1d876d419fdd95077fadd4615f76a6f759031b17378.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":";;EACOA,KAAK,EAAC;AAAkB;;EAEtBA,KAAK,EAAC;AAAY;;EAEhBA,KAAK,EAAC;AAAgB;;EAIhBA,KAAK,EAAC;AAAwB;;EAgB9BA,KAAK,EAAC;AAAwB;;EA8B9BA,KAAK,EAAC;AAAwB;;EA8BtCA,KAAK,EAAC;AAAe;;;EASJA,KAAK,EAAC;;;;EASLA,KAAK,EAAC;;;;;;;;;;;;;;;;;uBAtG/BC,mBAAA,CAqJM,OArJNC,UAqJM,GApJJC,mBAAA,YAAe,EACfC,mBAAA,CA+EM,OA/ENC,UA+EM,GA9EJF,mBAAA,eAAkB,EAClBC,mBAAA,CA4EM,OA5ENE,UA4EM,GA3EJC,YAAA,CA0EUC,kBAAA;gBA1EQC,MAAA,CAAAC,WAAW;+DAAXD,MAAA,CAAAC,WAAW,GAAAC,MAAA;IAAGC,UAAS,EAAEH,MAAA,CAAAI,cAAc;IAAE,cAAY,EAAC;;sBACtE,MAAe,CAAfV,mBAAA,YAAe,EACfI,YAAA,CAacO,sBAAA;MAbDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAWM,CAXNZ,mBAAA,CAWM,OAXNa,UAWM,GAVJV,YAAA,CASEW,0BAAA;QARCC,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9BC,cAAa,EAAEZ,MAAA,CAAAa,YAAY;QAC3B,UAAQ,EAAEb,MAAA,CAAAc,OAAO;QACjB,eAAa,EAAEd,MAAA,CAAAe,YAAY;QAC3B,aAAW,EAAEf,MAAA,CAAAgB,UAAU;QACvB,iBAAe,EAAEhB,MAAA,CAAAiB,aAAa;QAC9BC,uBAAuB,EAAElB,MAAA,CAAAmB,qBAAqB;QAC9CC,iBAAiB,EAAEpB,MAAA,CAAAqB;;;QAK1B3B,mBAAA,aAAgB,EAChBI,YAAA,CA2BcO,sBAAA;MA3BDC,KAAK,EAAC,OAAO;MAACC,IAAI,EAAC;;wBAC9B,MAyBM,CAzBNZ,mBAAA,CAyBM,OAzBN2B,UAyBM,GAxBJxB,YAAA,CAuBEyB,4BAAA;QAtBC,cAAY,EAAEvB,MAAA,CAAAwB,WAAW;QACzB,kBAAgB,EAAExB,MAAA,CAAAyB,cAAc;QAChC,qBAAmB,EAAEzB,MAAA,CAAA0B,iBAAiB;QACtC,WAAS,EAAE1B,MAAA,CAAA2B,QAAQ;QACnB,cAAY,EAAE3B,MAAA,CAAA4B,WAAW;QACzB,eAAa,EAAE5B,MAAA,CAAA6B,YAAY;QAC3B,oBAAkB,EAAE7B,MAAA,CAAA8B,iBAAiB;QACrC,mBAAiB,EAAE9B,MAAA,CAAA+B,eAAe;QAClC,gBAAc,EAAE/B,MAAA,CAAAgC,aAAa;QAC7BC,oBAAqB,EAAEjC,MAAA,CAAAkC,sBAAsB;QAC7CC,qBAAsB,EAAEnC,MAAA,CAAAoC,uBAAuB;QAC/CC,aAAa,EAAErC,MAAA,CAAAsC,WAAW;QAC1BC,YAAW,EAAEvC,MAAA,CAAAwC,UAAU;QACvBC,YAAW,EAAEzC,MAAA,CAAA0C,UAAU;QACvBC,UAAS,EAAE3C,MAAA,CAAA4C,QAAQ;QACnBC,eAAe,EAAE7C,MAAA,CAAA8C,aAAa;QAC9BC,uBAAuB,EAAE/C,MAAA,CAAAgD,qBAAqB;QAC9CC,oBAAoB,EAAEjD,MAAA,CAAAkD,kBAAkB;QACxCC,yBAAyB,EAAEnD,MAAA,CAAAoD,uBAAuB;QAClDC,uBAAwB,EAAErD,MAAA,CAAAsD,qBAAqB;QAC/CC,gBAAgB,EAAEvD,MAAA,CAAAwD,cAAc;QAChCC,YAAY,EAAEzD,MAAA,CAAA0D;;;QAKrBhE,mBAAA,YAAe,EACfI,YAAA,CAyBcO,sBAAA;MAzBDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAuBM,CAvBNZ,mBAAA,CAuBM,OAvBNgE,UAuBM,GAtBJ7D,YAAA,CAqBE8D,8BAAA;QApBCC,MAAM,EAAE7D,MAAA,CAAA6D,MAAM;QACd,mBAAiB,EAAE7D,MAAA,CAAA8D,eAAe;QAClC,aAAW,EAAE9D,MAAA,CAAA+D,UAAU;QACvB,UAAQ,EAAE/D,MAAA,CAAAc,OAAO;QACjB,oBAAkB,EAAEd,MAAA,CAAAgE,iBAAiB;QACrC,iBAAe,EAAEhE,MAAA,CAAAiE,cAAc;QAC/B,cAAY,EAAEjE,MAAA,CAAAkE,WAAW;QACzB,WAAS,EAAElE,MAAA,CAAAmE,QAAQ;QACnBzD,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9ByD,UAAS,EAAEpE,MAAA,CAAAqE,QAAQ;QACnBC,UAAS,EAAEtE,MAAA,CAAAuE,QAAQ;QACnBC,aAAY,EAAExE,MAAA,CAAAyE,WAAW;QACzBC,aAAY,EAAE1E,MAAA,CAAA2E,WAAW;QACzBC,eAAe,EAAE5E,MAAA,CAAA6E,aAAa;QAC9BC,aAAa,EAAE9E,MAAA,CAAA+E,WAAW;QAC1BC,WAAW,EAAEhF,MAAA,CAAAiF,SAAS;QACtBC,aAAY,EAAElF,MAAA,CAAAmF,WAAW;QACzBC,yBAAyB,EAAEpF,MAAA,CAAAqF,uBAAuB;QAClDC,sBAAsB,EAAEtF,MAAA,CAAAuF,oBAAoB;QAC5CC,mBAAmB,EAAExF,MAAA,CAAAyF;;;;;uDAQlC/F,mBAAA,YAAe,EACfC,mBAAA,CA0BM,OA1BN+F,UA0BM,GAzBJ5F,YAAA,CAKE6F,oBAAA;IAJCC,IAAI,EAAE5F,MAAA,CAAAC,WAAW;IACjB4F,WAAU,EAAE7F,MAAA,CAAA6F,WAAW;IACvBC,UAAS,EAAE9F,MAAA,CAAA8F,UAAU;IACtBC,GAAG,EAAC;kEAGNrG,mBAAA,YAAe,EACJM,MAAA,CAAAc,OAAO,I,cAAlBtB,mBAAA,CAMM,OANNwG,UAMM,GALJlG,YAAA,CAIEmG,mBAAA;IAHCC,KAAK,EAAElG,MAAA,CAAAmG,aAAa;IACrBC,IAAI,EAAC,MAAM;IACX,WAAS,EAAT;6EAIJ1G,mBAAA,YAAe,EACJM,MAAA,CAAA2B,QAAQ,I,cAAnBnC,mBAAA,CAOM,OAPN6G,UAOM,GANJvG,YAAA,CAKEmG,mBAAA;IAJCC,KAAK,EAAElG,MAAA,CAAAsG,UAAU;IAClBF,IAAI,EAAC,MAAM;IACX,WAAS,EAAT,EAAS;IACRG,QAAQ,EAAE;+EAKjB7G,mBAAA,cAAiB,EACjBI,YAAA,CAmCY0G,oBAAA;gBAlCDxG,MAAA,CAAAyG,iBAAiB;+DAAjBzG,MAAA,CAAAyG,iBAAiB,GAAAvG,MAAA;IAC1BgG,KAAK,EAAC,OAAO;IACbQ,KAAK,EAAC;;IA4BKC,MAAM,EAAAC,QAAA,CACf,MAA4D,CAA5D9G,YAAA,CAA4D+G,oBAAA;MAAhDC,OAAK,EAAAC,MAAA,QAAAA,MAAA,MAAA7G,MAAA,IAAEF,MAAA,CAAAyG,iBAAiB;;wBAAU,MAAEM,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;QAChDjH,YAAA,CAAgE+G,oBAAA;MAArDT,IAAI,EAAC,SAAS;MAAEU,OAAK,EAAE9G,MAAA,CAAAwD;;wBAAgB,MAAEuD,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;;sBA5BtD,MAyBU,CAzBVjH,YAAA,CAyBUkH,kBAAA;MAzBAC,KAAK,EAAEjH,MAAA,CAAAkH,QAAQ;MAAE,aAAW,EAAC,MAAM;MAACC,IAAI,EAAC;;wBACjD,MAQe,CARfrH,YAAA,CAQesH,uBAAA;QARD9G,KAAK,EAAC;MAAM;0BACxB,MAMY,CANZR,YAAA,CAMYuH,oBAAA;sBANQrH,MAAA,CAAAkH,QAAQ,CAACd,IAAI;qEAAbpG,MAAA,CAAAkH,QAAQ,CAACd,IAAI,GAAAlG,MAAA;UAAEoH,KAAmB,EAAnB;YAAA;UAAA;;4BACjC,MAAwC,CAAxCxH,YAAA,CAAwCyH,oBAAA;YAA7BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA0CyH,oBAAA;YAA/BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA2CyH,oBAAA;YAAhCjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAAyCyH,oBAAA;YAA9BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA0CyH,oBAAA;YAA/BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;;;;;UAGlC1H,YAAA,CAOesH,uBAAA;QAPD9G,KAAK,EAAC;MAAM;0BACxB,MAKY,CALZR,YAAA,CAKYuH,oBAAA;sBALQrH,MAAA,CAAAkH,QAAQ,CAACO,KAAK;qEAAdzH,MAAA,CAAAkH,QAAQ,CAACO,KAAK,GAAAvH,MAAA;UAAEoH,KAAmB,EAAnB;YAAA;UAAA;;4BAClC,MAAqC,CAArCxH,YAAA,CAAqCyH,oBAAA;YAA1BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAAwCyH,oBAAA;YAA7BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAAsCyH,oBAAA;YAA3BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAA2CyH,oBAAA;YAAhCjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;;;;;UAGlC1H,YAAA,CAMesH,uBAAA;QAND9G,KAAK,EAAC;MAAM;0BACxB,MAIE,CAJFR,YAAA,CAIE4H,mBAAA;sBAHS1H,MAAA,CAAAkH,QAAQ,CAACS,WAAW;qEAApB3H,MAAA,CAAAkH,QAAQ,CAACS,WAAW,GAAAzH,MAAA;UAC7BkG,IAAI,EAAC,UAAU;UACdwB,IAAI,EAAE","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/19a5975286a411109bc13a13d73b57afe4670d2adfd0da73c7785fb2de5aafa0.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/19a5975286a411109bc13a13d73b57afe4670d2adfd0da73c7785fb2de5aafa0.json new file mode 100644 index 00000000..f3d805b1 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/19a5975286a411109bc13a13d73b57afe4670d2adfd0da73c7785fb2de5aafa0.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/1ad33a07923bd798433f18b78f33e615818471a1ad0f8f3815700c8ecd3cc467.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/1ad33a07923bd798433f18b78f33e615818471a1ad0f8f3815700c8ecd3cc467.json new file mode 100644 index 00000000..a815fc70 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/1ad33a07923bd798433f18b78f33e615818471a1ad0f8f3815700c8ecd3cc467.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2347660e0fc3e517e9a0498c24615779b66769a4e5cb14d2d6455436e91ec51d.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2347660e0fc3e517e9a0498c24615779b66769a4e5cb14d2d6455436e91ec51d.json new file mode 100644 index 00000000..197faea8 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2347660e0fc3e517e9a0498c24615779b66769a4e5cb14d2d6455436e91ec51d.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) return;\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","radius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","strokeColor","strokeWeight","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","setOptions","strokeOpacity","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/273df93ffcf7cd25aae955578594be27705a20b86f176b1fb85bf4ff35681dad.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/273df93ffcf7cd25aae955578594be27705a20b86f176b1fb85bf4ff35681dad.json new file mode 100644 index 00000000..a505f801 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/273df93ffcf7cd25aae955578594be27705a20b86f176b1fb85bf4ff35681dad.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const geometry = getGeometryFromOverlay(overlay);\n\n // 验证必需字段\n if (!currentThreatType.value) {\n console.error('威胁类型为空:', currentThreatType.value);\n ElMessage.error('请选择威胁类型');\n return;\n }\n if (!threatLevel.value) {\n console.error('威胁等级为空:', threatLevel.value);\n ElMessage.error('请选择威胁等级');\n return;\n }\n if (!geometry) {\n console.error('几何信息解析失败');\n ElMessage.error('无法解析威胁区形状信息');\n return;\n }\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value || '',\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: geometry\n };\n try {\n console.log('准备发送威胁区数据:', zoneData);\n console.log('当前威胁类型:', currentThreatType.value);\n console.log('当前威胁等级:', threatLevel.value);\n console.log('当前描述:', threatDescription.value);\n console.log('几何信息:', geometry);\n\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n console.log('API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('API错误响应:', errorText);\n throw new Error(`保存威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('API成功响应:', result);\n if (result.success) {\n const zone = result.data;\n\n // 移除原始绘制的覆盖物\n mapInstance.value.remove(overlay);\n\n // 使用统一的渲染函数重新创建覆盖物,确保格式一致\n renderThreatZoneOnMap(zone);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库并重新渲染:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n console.log('解析覆盖物几何信息:', overlay.CLASS_NAME || overlay.className);\n try {\n if (overlay.CLASS_NAME === 'AMap.Circle' || overlay.className === 'Overlay.Circle') {\n const center = overlay.getCenter();\n const radius = overlay.getRadius();\n console.log('圆形几何信息:', {\n center,\n radius\n });\n return {\n type: 'circle',\n center: [center.lng, center.lat],\n radius: radius\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon' || overlay.className === 'Overlay.Polygon') {\n const path = overlay.getPath();\n console.log('多边形几何信息:', path);\n return {\n type: 'polygon',\n path: path.map(point => [point.lng, point.lat])\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle' || overlay.className === 'Overlay.Rectangle') {\n const bounds = overlay.getBounds();\n console.log('矩形几何信息:', bounds);\n return {\n type: 'rectangle',\n bounds: [bounds.getSouthWest().lng, bounds.getSouthWest().lat, bounds.getNorthEast().lng, bounds.getNorthEast().lat]\n };\n }\n } catch (error) {\n console.error('解析几何信息失败:', error);\n }\n console.error('未识别的覆盖物类型:', overlay.CLASS_NAME || overlay.className);\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n console.log('请求URL: /api/threat-zones');\n const response = await fetch('/api/threat-zones');\n console.log('加载API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('加载API错误响应:', errorText);\n throw new Error(`获取威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('加载API成功响应:', result);\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区(仅清除地图,不调用后端API)\n clearAllZones(true);\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) {\n console.error('地图实例不存在,无法渲染威胁区');\n return;\n }\n try {\n console.log('开始渲染威胁区到地图:', zone);\n const AMap = window.AMap;\n let overlay = null;\n\n // 威胁区样式配置\n const styleOptions = {\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 3,\n strokeOpacity: 1,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n };\n console.log('威胁区样式配置:', styleOptions);\n console.log('威胁区几何信息:', zone.geometry);\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n console.log('创建圆形威胁区:', zone.geometry.center, zone.geometry.radius);\n overlay = new AMap.Circle({\n center: new AMap.LngLat(zone.geometry.center[0], zone.geometry.center[1]),\n radius: zone.geometry.radius,\n ...styleOptions\n });\n } else if (zone.geometry.type === 'polygon') {\n console.log('创建多边形威胁区:', zone.geometry.path);\n const path = zone.geometry.path.map(point => new AMap.LngLat(point[0], point[1]));\n overlay = new AMap.Polygon({\n path: path,\n ...styleOptions\n });\n } else if (zone.geometry.type === 'rectangle') {\n console.log('创建矩形威胁区:', zone.geometry.bounds);\n const bounds = new AMap.Bounds(new AMap.LngLat(zone.geometry.bounds[0], zone.geometry.bounds[1]), new AMap.LngLat(zone.geometry.bounds[2], zone.geometry.bounds[3]));\n overlay = new AMap.Rectangle({\n bounds: bounds,\n ...styleOptions\n });\n }\n if (overlay) {\n console.log('威胁区覆盖物创建成功,添加到地图');\n\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 检查威胁区是否已在列表中,避免重复添加\n const existingIndex = threatZones.value.findIndex(z => z.id === zone.id);\n if (existingIndex === -1) {\n threatZones.value.push(zone);\n console.log('威胁区已添加到列表');\n } else {\n console.log('威胁区已存在列表中,跳过添加');\n }\n\n // 添加点击事件\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log(`威胁区 ${zone.id} 已成功渲染到地图`);\n } else {\n console.error('威胁区覆盖物创建失败');\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = async () => {\n try {\n console.log('开始更新威胁区:', editForm.value.id);\n const response = await fetch(`/api/threat-zones/${editForm.value.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n type: editForm.value.type,\n level: editForm.value.level,\n description: editForm.value.description\n })\n });\n if (!response.ok) {\n throw new Error('更新威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 更新本地数据\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n }\n ElMessage.success('威胁区已更新');\n console.log('威胁区更新成功:', result.data);\n } else {\n throw new Error(result.message || '更新威胁区失败');\n }\n } catch (error) {\n console.error('更新威胁区失败:', error);\n ElMessage.error('更新威胁区失败: ' + error.message);\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = async (skipConfirm = false) => {\n try {\n if (!skipConfirm && threatZones.value.length > 0) {\n // 批量删除所有威胁区\n const zoneIds = threatZones.value.map(zone => zone.id);\n console.log('开始批量删除威胁区:', zoneIds);\n const response = await fetch('/api/threat-zones', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n ids: zoneIds\n })\n });\n if (!response.ok) {\n throw new Error('批量删除威胁区失败');\n }\n const result = await response.json();\n if (!result.success) {\n throw new Error(result.message || '批量删除威胁区失败');\n }\n console.log('威胁区批量删除成功:', result.data);\n }\n\n // 从地图移除所有覆盖物\n Object.values(zoneOverlays).forEach(overlay => {\n if (mapInstance.value) {\n mapInstance.value.remove(overlay);\n }\n });\n\n // 清空数据\n threatZones.value = [];\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n if (!skipConfirm) {\n ElMessage.success('已清除所有威胁区');\n }\n } catch (error) {\n console.error('清除威胁区失败:', error);\n if (!skipConfirm) {\n ElMessage.error('清除威胁区失败: ' + error.message);\n }\n }\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","addTestThreatZone","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","getGeometryFromOverlay","zoneData","response","fetch","method","headers","body","JSON","stringify","statusText","ok","errorText","text","Error","result","json","zone","data","renderThreatZoneOnMap","getCenter","getRadius","path","getPath","point","bounds","getBounds","getSouthWest","getNorthEast","clearAllZones","LngLat","Polygon","Bounds","Rectangle","existingIndex","findIndex","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","skipConfirm","zoneIds","ids","keys","key","updateLayerVisibility","layers","includes","fitToZones","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2914767dd88913f2403e176f151fc46dce5173d0b87037e4d50c89aeff9630a7.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2914767dd88913f2403e176f151fc46dce5173d0b87037e4d50c89aeff9630a7.json new file mode 100644 index 00000000..eb56765f --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2914767dd88913f2403e176f151fc46dce5173d0b87037e4d50c89aeff9630a7.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2a1f406567b9354f78efa5de88cca3ce40554479871a7dd074cf0af68b5939cb.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2a1f406567b9354f78efa5de88cca3ce40554479871a7dd074cf0af68b5939cb.json new file mode 100644 index 00000000..4b13d729 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2a1f406567b9354f78efa5de88cca3ce40554479871a7dd074cf0af68b5939cb.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: _ctx.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: _ctx.updateCircleRadius,\n onUpdateThreatDescription: _ctx.updateThreatDescription,\n onUpdateThreatTimeRange: _ctx.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","_ctx","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2e2e476105ec89043d7397c83845a2aafaacd8928390f0681b38a8e421c654d5.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2e2e476105ec89043d7397c83845a2aafaacd8928390f0681b38a8e421c654d5.json new file mode 100644 index 00000000..37e6511d --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2e2e476105ec89043d7397c83845a2aafaacd8928390f0681b38a8e421c654d5.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, onUnmounted, provide } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage } from 'element-plus';\nimport AMapLoader from '@amap/amap-jsapi-loader';\nexport default {\n name: 'SharedMap',\n props: {\n mode: {\n type: String,\n default: 'default',\n // 'default', 'threatZone', 'pathPlanning'\n validator: value => ['default', 'threatZone', 'pathPlanning'].includes(value)\n }\n },\n emits: ['map-loaded', 'map-click'],\n setup(props, {\n emit\n }) {\n const store = useStore();\n const mapInstance = ref(null);\n const mapLoaded = ref(false);\n const markers = ref({});\n const viewMode = ref('3D');\n const currentMapStyle = ref('normal');\n const overlayLayers = ref(['buildings']);\n const layerInstances = ref({});\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 从环境变量或后端获取地图API密钥\n const getApiKey = () => {\n // 在生产环境中,应该从后端获取API密钥,这里暂时使用硬编码的API密钥\n return '492dc9daf4eae7cab678c0f3efed8198';\n };\n const initMap = async () => {\n const container = document.getElementById('sharedMap');\n if (!container) {\n console.error('地图容器未找到');\n ElMessage.error('地图容器未找到');\n return;\n }\n try {\n console.log('开始加载高德地图...');\n\n // 使用AMapLoader加载高德地图API\n const AMap = await AMapLoader.load({\n key: getApiKey(),\n version: '2.0',\n plugins: ['AMap.Scale', 'AMap.ToolBar', 'AMap.ControlBar', 'AMap.InfoWindow', 'AMap.Marker', 'AMap.Polyline', 'AMap.Polygon', 'AMap.Circle', 'AMap.MouseTool', 'AMap.HawkEye', 'AMap.MapType', 'AMap.Geolocation', 'AMap.TileLayer', 'AMap.TileLayer.Satellite', 'AMap.TileLayer.Traffic', 'AMap.TileLayer.RoadNet', 'AMap.Buildings', 'AMap.DistrictLayer', 'AMap.Weather', 'AMap.Driving', 'AMap.PolyEditor']\n });\n console.log('高德地图 API 加载成功');\n\n // 创建地图实例\n mapInstance.value = new AMap.Map('sharedMap', {\n zoom: 11,\n center: [116.397428, 39.90923],\n viewMode: viewMode.value,\n pitch: viewMode.value === '3D' ? 45 : 0,\n rotation: 0,\n mapStyle: 'amap://styles/normal',\n features: ['bg', 'road', 'building', 'point'],\n resizeEnable: true,\n dragEnable: true,\n zoomEnable: true,\n doubleClickZoom: true,\n keyboardEnable: true,\n jogEnable: true,\n scrollWheel: true,\n touchZoom: true\n });\n console.log('地图实例创建成功');\n\n // 添加地图控件\n const toolbar = new AMap.ToolBar({\n position: {\n top: '10px',\n right: '10px'\n }\n });\n const scale = new AMap.Scale({\n position: {\n bottom: '10px',\n right: '10px'\n }\n });\n\n // 添加3D控制条,用于控制3D视图的旋转、倾斜等\n const controlBar = new AMap.ControlBar({\n position: {\n top: '80px',\n right: '10px'\n },\n showZoomBar: false,\n showControlButton: true\n });\n mapInstance.value.addControl(toolbar);\n mapInstance.value.addControl(scale);\n mapInstance.value.addControl(controlBar);\n\n // 添加地图事件监听\n mapInstance.value.on('click', e => {\n emit('map-click', e);\n });\n mapInstance.value.on('complete', () => {\n console.log('地图加载完成');\n mapLoaded.value = true;\n emit('map-loaded', mapInstance.value);\n try {\n // 初始化不同的图层实例,但不会立即添加到地图\n // 预初始化交通图层\n layerInstances.value.traffic = new window.AMap.TileLayer.Traffic({\n zIndex: 10,\n opacity: 0.8\n });\n\n // 预初始化卫星图层\n layerInstances.value.satellite = new window.AMap.TileLayer.Satellite({\n zIndex: 9\n });\n\n // 预初始化建筑图层\n layerInstances.value.buildings = new window.AMap.Buildings({\n zIndex: 11,\n heightFactor: viewMode.value === '3D' ? 1 : 0.6\n });\n\n // 初始化图层显示\n updateOverlayLayers();\n\n // 初始化天气服务\n try {\n // 创建天气查询服务\n const weather = new window.AMap.Weather();\n layerInstances.value.weatherService = weather;\n\n // 查询默认城市天气作为示例\n weather.getLive('北京市', function (err, data) {\n if (!err) {\n console.log('天气服务初始化成功:', data);\n }\n });\n } catch (weatherError) {\n console.warn('天气服务初始化失败:', weatherError);\n }\n } catch (layerError) {\n console.error('图层初始化失败:', layerError);\n }\n\n // 主动获取无人机数据,而不是直接初始化\n fetchDrones();\n });\n } catch (error) {\n console.error('地图加载失败:', error);\n ElMessage.error(`地图加载失败: ${error.message}`);\n }\n };\n\n // 添加主动获取无人机数据的方法\n const fetchDrones = async () => {\n try {\n console.log('获取无人机数据...');\n await store.dispatch('fetchDrones');\n\n // 查看完整状态\n console.log('Store状态:', store.state);\n\n // 尝试直接获取正确的无人机数据\n const drones = store.state.drones;\n console.log('无人机数据状态:', drones);\n if (Array.isArray(drones)) {\n initDroneMarkers();\n } else {\n console.warn('无人机数据格式不正确,从模块中获取');\n const dronesFromModule = store.state.drones?.list;\n console.log('无人机模块数据:', dronesFromModule);\n if (Array.isArray(dronesFromModule)) {\n // 先将数据设置到根状态,以便标记初始化能正常工作\n store.commit('SET_DRONES', dronesFromModule);\n initDroneMarkers();\n }\n }\n } catch (error) {\n console.error('获取无人机数据失败:', error);\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = () => {\n if (!mapInstance.value || !window.AMap) return;\n\n // 从store获取无人机数据,确保是数组\n const drones = store.state.drones || [];\n\n // 检查drones是否为数组\n if (!Array.isArray(drones)) {\n console.warn('无人机数据不是数组格式:', drones);\n return; // 如果不是数组,直接返回\n }\n console.log('无人机数据:', drones);\n\n // 遍历添加无人机标记\n drones.forEach(drone => {\n if (drone && drone.latitude && drone.longitude) {\n addDroneMarker(drone);\n }\n });\n };\n\n // 添加无人机标记\n const addDroneMarker = drone => {\n if (!mapInstance.value || !window.AMap) return;\n\n // 如果已存在该无人机的标记,先移除\n if (markers.value[drone.id]) {\n mapInstance.value.remove(markers.value[drone.id]);\n }\n\n // 根据无人机状态设置不同的颜色\n let statusColor = '#2ecc71'; // 默认绿色 - active\n if (drone.status === 'idle') {\n statusColor = '#3498db'; // 蓝色\n } else if (drone.status === 'error') {\n statusColor = '#e74c3c'; // 红色\n }\n\n // 创建无人机标记\n const marker = new window.AMap.Marker({\n position: [drone.longitude, drone.latitude],\n icon: new window.AMap.Icon({\n size: new window.AMap.Size(40, 40),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${drone.id}\n \n `),\n imageSize: new window.AMap.Size(40, 40)\n }),\n anchor: 'center',\n zIndex: 100,\n angle: drone.heading || 0\n });\n\n // 保存标记\n markers.value[drone.id] = marker;\n mapInstance.value.add(marker);\n };\n\n // 修改地图样式切换功能\n const changeMapStyle = style => {\n if (!mapInstance.value) return;\n try {\n currentMapStyle.value = style;\n switch (style) {\n case 'satellite':\n // 使用卫星图层\n if (!layerInstances.value.satellite) {\n layerInstances.value.satellite = new window.AMap.TileLayer.Satellite({\n zIndex: 9\n });\n }\n\n // 添加卫星图层\n mapInstance.value.add(layerInstances.value.satellite);\n\n // 确保其他已启用的图层在卫星图层之上显示\n updateOverlayLayers();\n break;\n case 'dark':\n // 移除卫星图层\n if (layerInstances.value.satellite) {\n mapInstance.value.remove(layerInstances.value.satellite);\n }\n // 设置暗色地图\n mapInstance.value.setMapStyle('amap://styles/dark');\n\n // 确保其他已启用的图层在暗色地图上正确显示\n updateOverlayLayers();\n break;\n default:\n // 移除卫星图层\n if (layerInstances.value.satellite) {\n mapInstance.value.remove(layerInstances.value.satellite);\n }\n // 设置默认地图样式\n mapInstance.value.setMapStyle('amap://styles/normal');\n\n // 确保其他已启用的图层在标准地图上正确显示\n updateOverlayLayers();\n }\n console.log(`已切换到${style}地图样式`);\n } catch (error) {\n console.error('切换地图样式失败:', error);\n ElMessage.error(`切换地图样式失败: ${error.message}`);\n }\n };\n\n // 切换视图模式\n const changeViewMode = mode => {\n if (!mapInstance.value) return;\n try {\n // 设置视图模式 - 使用正确的API方法\n if (mode === '3D') {\n // 设置为3D视图\n mapInstance.value.setViewMode('3D');\n mapInstance.value.setPitch(45); // 设置俯仰角(3D效果)\n console.log('已切换到3D视图模式');\n } else {\n // 设置为2D视图\n mapInstance.value.setViewMode('2D');\n mapInstance.value.setPitch(0); // 平面视图\n console.log('已切换到2D视图模式');\n }\n\n // 重新加载建筑层以确保它在视图模式变化后正常显示\n if (overlayLayers.value.includes('buildings')) {\n if (layerInstances.value.buildings) {\n mapInstance.value.remove(layerInstances.value.buildings);\n }\n layerInstances.value.buildings = new window.AMap.Buildings({\n zIndex: 10,\n // 在3D模式下加强建筑物外观\n heightFactor: mode === '3D' ? 1 : 0.6\n });\n mapInstance.value.add(layerInstances.value.buildings);\n }\n\n // 如果是卫星图,处理卫星图层\n if (currentMapStyle.value === 'satellite') {\n changeMapStyle('satellite');\n }\n } catch (error) {\n console.error('切换视图模式失败:', error);\n ElMessage.error(`切换到${mode}视图失败: ${error.message}`);\n }\n };\n\n // 更新图层\n const updateOverlayLayers = () => {\n if (!mapInstance.value || !window.AMap) return;\n try {\n console.log('更新图层状态:', overlayLayers.value);\n\n // 交通流量图层\n if (overlayLayers.value.includes('traffic')) {\n if (!layerInstances.value.traffic) {\n layerInstances.value.traffic = new window.AMap.TileLayer.Traffic({\n zIndex: 10,\n opacity: 0.8\n });\n }\n mapInstance.value.add(layerInstances.value.traffic);\n console.log('已添加交通流量图层');\n } else if (layerInstances.value.traffic) {\n mapInstance.value.remove(layerInstances.value.traffic);\n console.log('已移除交通流量图层');\n }\n\n // 建筑物图层\n if (overlayLayers.value.includes('buildings')) {\n if (!layerInstances.value.buildings) {\n layerInstances.value.buildings = new window.AMap.Buildings({\n zIndex: 11,\n heightFactor: viewMode.value === '3D' ? 1 : 0.6\n });\n }\n mapInstance.value.add(layerInstances.value.buildings);\n console.log('已添加建筑物图层');\n } else if (layerInstances.value.buildings) {\n mapInstance.value.remove(layerInstances.value.buildings);\n console.log('已移除建筑物图层');\n }\n\n // 地形图层\n if (overlayLayers.value.includes('terrain')) {\n if (!layerInstances.value.terrain) {\n // 等高线图层\n layerInstances.value.terrain = new window.AMap.TileLayer({\n zIndex: 8,\n getTileUrl: function (x, y, z) {\n return 'https://webst04.is.autonavi.com/appmaptile?style=6&x=' + x + '&y=' + y + '&z=' + z;\n }\n });\n }\n mapInstance.value.add(layerInstances.value.terrain);\n console.log('已添加地形图层');\n } else if (layerInstances.value.terrain) {\n mapInstance.value.remove(layerInstances.value.terrain);\n console.log('已移除地形图层');\n }\n\n // 天气图层\n if (overlayLayers.value.includes('weather')) {\n // 显示天气信息\n showWeatherInfo();\n } else {\n // 隐藏天气信息\n hideWeatherInfo();\n }\n\n // 威胁区域图层\n if (overlayLayers.value.includes('threats')) {\n // 威胁区域图层处理逻辑\n console.log('威胁区域图层暂未实现');\n }\n } catch (error) {\n console.error('更新图层失败:', error);\n ElMessage.error(`更新图层失败: ${error.message}`);\n }\n };\n\n // 显示天气信息\n const showWeatherInfo = () => {\n if (!mapInstance.value || !window.AMap) return;\n try {\n // 如果已有天气信息标记,先清除\n if (layerInstances.value.weatherMarkers && layerInstances.value.weatherMarkers.length > 0) {\n layerInstances.value.weatherMarkers.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n }\n\n // 初始化天气标记数组\n layerInstances.value.weatherMarkers = [];\n\n // 创建天气查询服务(如果不存在)\n if (!layerInstances.value.weatherService) {\n layerInstances.value.weatherService = new window.AMap.Weather();\n }\n\n // 主要城市天气信息\n const cities = [{\n name: '北京',\n position: [116.397428, 39.90923]\n }, {\n name: '上海',\n position: [121.473667, 31.230525]\n }, {\n name: '广州',\n position: [113.264385, 23.129112]\n }, {\n name: '深圳',\n position: [114.057868, 22.543099]\n }, {\n name: '成都',\n position: [104.065735, 30.659462]\n }];\n\n // 查询每个城市的天气\n cities.forEach(city => {\n layerInstances.value.weatherService.getLive(city.name, (err, data) => {\n if (!err && data) {\n // 创建天气信息内容\n const weatherInfo = `\n
\n

${city.name}天气

\n

天气: ${data.weather}

\n

温度: ${data.temperature}°C

\n

风向: ${data.windDirection}

\n

风力: ${data.windPower}

\n

湿度: ${data.humidity}%

\n
\n `;\n\n // 创建天气图标\n const weatherIcon = getWeatherIcon(data.weather);\n\n // 创建标记\n const marker = new window.AMap.Marker({\n position: city.position,\n content: `
${weatherIcon}
`,\n offset: new window.AMap.Pixel(-15, -15),\n zIndex: 120,\n title: `${city.name}天气: ${data.weather}, ${data.temperature}°C`\n });\n\n // 创建信息窗体\n const infoWindow = new window.AMap.InfoWindow({\n content: weatherInfo,\n offset: new window.AMap.Pixel(0, -30)\n });\n\n // 绑定点击事件\n marker.on('click', () => {\n infoWindow.open(mapInstance.value, city.position);\n });\n\n // 添加到地图\n mapInstance.value.add(marker);\n\n // 保存标记引用\n layerInstances.value.weatherMarkers.push(marker);\n }\n });\n });\n console.log('已添加天气信息图层');\n } catch (error) {\n console.error('天气图层添加失败:', error);\n }\n };\n\n // 隐藏天气信息\n const hideWeatherInfo = () => {\n if (!mapInstance.value) return;\n\n // 移除所有天气标记\n if (layerInstances.value.weatherMarkers && layerInstances.value.weatherMarkers.length > 0) {\n layerInstances.value.weatherMarkers.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n layerInstances.value.weatherMarkers = [];\n console.log('已移除天气信息图层');\n }\n };\n\n // 获取天气图标\n const getWeatherIcon = weather => {\n // 根据天气状况返回不同的图标\n const icons = {\n '晴': '',\n '多云': '',\n '阴': '',\n '雨': '',\n '雪': ''\n };\n\n // 匹配天气关键词\n for (const key in icons) {\n if (weather.includes(key)) {\n return icons[key];\n }\n }\n\n // 默认图标\n return '天气';\n };\n\n // 提供地图实例给子组件\n provide('mapInstance', mapInstance);\n\n // 处理窗口大小变化\n const resizeHandler = () => {\n if (mapInstance.value) {\n mapInstance.value.resize();\n }\n };\n onMounted(() => {\n initMap();\n window.addEventListener('resize', resizeHandler);\n });\n onUnmounted(() => {\n window.removeEventListener('resize', resizeHandler);\n if (mapInstance.value) {\n mapInstance.value.destroy();\n }\n });\n\n // 暴露给父组件的方法\n const getMap = () => mapInstance.value;\n return {\n mapInstance,\n mapLoaded,\n viewMode,\n currentMapStyle,\n overlayLayers,\n changeMapStyle,\n changeViewMode,\n updateOverlayLayers,\n getMap\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","onUnmounted","provide","useStore","ElMessage","AMapLoader","name","props","mode","type","String","default","validator","value","includes","emits","setup","emit","store","mapInstance","mapLoaded","markers","viewMode","currentMapStyle","overlayLayers","layerInstances","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","getApiKey","initMap","container","document","getElementById","log","AMap","load","key","version","plugins","Map","zoom","center","pitch","rotation","mapStyle","features","resizeEnable","dragEnable","zoomEnable","doubleClickZoom","keyboardEnable","jogEnable","scrollWheel","touchZoom","toolbar","ToolBar","position","top","right","scale","Scale","bottom","controlBar","ControlBar","showZoomBar","showControlButton","addControl","on","e","traffic","window","TileLayer","Traffic","zIndex","opacity","satellite","Satellite","buildings","Buildings","heightFactor","updateOverlayLayers","weather","Weather","weatherService","getLive","err","data","weatherError","layerError","fetchDrones","message","dispatch","state","drones","Array","isArray","initDroneMarkers","dronesFromModule","list","commit","forEach","drone","latitude","longitude","addDroneMarker","id","remove","statusColor","status","marker","Marker","icon","Icon","size","Size","image","imageSize","anchor","angle","heading","add","changeMapStyle","style","setMapStyle","changeViewMode","setViewMode","setPitch","terrain","getTileUrl","x","y","z","showWeatherInfo","hideWeatherInfo","weatherMarkers","length","cities","city","weatherInfo","temperature","windDirection","windPower","humidity","weatherIcon","getWeatherIcon","content","offset","Pixel","title","infoWindow","InfoWindow","open","push","icons","resizeHandler","resize","addEventListener","removeEventListener","destroy","getMap"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\components\\SharedMap.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2f83a8af8c962c63d24fecaf09feb0e236bb225a1b5b87ebe5e385531dce98f9.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2f83a8af8c962c63d24fecaf09feb0e236bb225a1b5b87ebe5e385531dce98f9.json new file mode 100644 index 00000000..16c252d1 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/2f83a8af8c962c63d24fecaf09feb0e236bb225a1b5b87ebe5e385531dce98f9.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/354d1299b080275575890a3121138eb100bdd0217dfbe56c0b89a6ee1b92dd1a.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/354d1299b080275575890a3121138eb100bdd0217dfbe56c0b89a6ee1b92dd1a.json new file mode 100644 index 00000000..077737c3 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/354d1299b080275575890a3121138eb100bdd0217dfbe56c0b89a6ee1b92dd1a.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/3cfd15e26f556b66f2ee7e4c8b30f0ffaed9569b15ab99ed1c9e6b73776ed760.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/3cfd15e26f556b66f2ee7e4c8b30f0ffaed9569b15ab99ed1c9e6b73776ed760.json new file mode 100644 index 00000000..b8bb8d15 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/3cfd15e26f556b66f2ee7e4c8b30f0ffaed9569b15ab99ed1c9e6b73776ed760.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":";;EACOA,KAAK,EAAC;AAAkB;;EAEtBA,KAAK,EAAC;AAAY;;EAEhBA,KAAK,EAAC;AAAgB;;EAIhBA,KAAK,EAAC;AAAwB;;EAgB9BA,KAAK,EAAC;AAAwB;;EA8B9BA,KAAK,EAAC;AAAwB;;EA8BtCA,KAAK,EAAC;AAAe;;;EASJA,KAAK,EAAC;;;;EASLA,KAAK,EAAC;;;;;;;;;;;;;;;;;uBAtG/BC,mBAAA,CAqJM,OArJNC,UAqJM,GApJJC,mBAAA,YAAe,EACfC,mBAAA,CA+EM,OA/ENC,UA+EM,GA9EJF,mBAAA,eAAkB,EAClBC,mBAAA,CA4EM,OA5ENE,UA4EM,GA3EJC,YAAA,CA0EUC,kBAAA;gBA1EQC,MAAA,CAAAC,WAAW;+DAAXD,MAAA,CAAAC,WAAW,GAAAC,MAAA;IAAGC,UAAS,EAAEH,MAAA,CAAAI,cAAc;IAAE,cAAY,EAAC;;sBACtE,MAAe,CAAfV,mBAAA,YAAe,EACfI,YAAA,CAacO,sBAAA;MAbDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAWM,CAXNZ,mBAAA,CAWM,OAXNa,UAWM,GAVJV,YAAA,CASEW,0BAAA;QARCC,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9BC,cAAa,EAAEZ,MAAA,CAAAa,YAAY;QAC3B,UAAQ,EAAEb,MAAA,CAAAc,OAAO;QACjB,eAAa,EAAEd,MAAA,CAAAe,YAAY;QAC3B,aAAW,EAAEf,MAAA,CAAAgB,UAAU;QACvB,iBAAe,EAAEhB,MAAA,CAAAiB,aAAa;QAC9BC,uBAAuB,EAAElB,MAAA,CAAAmB,qBAAqB;QAC9CC,iBAAiB,EAAEpB,MAAA,CAAAqB;;;QAK1B3B,mBAAA,aAAgB,EAChBI,YAAA,CA2BcO,sBAAA;MA3BDC,KAAK,EAAC,OAAO;MAACC,IAAI,EAAC;;wBAC9B,MAyBM,CAzBNZ,mBAAA,CAyBM,OAzBN2B,UAyBM,GAxBJxB,YAAA,CAuBEyB,4BAAA;QAtBC,cAAY,EAAEvB,MAAA,CAAAwB,WAAW;QACzB,kBAAgB,EAAExB,MAAA,CAAAyB,cAAc;QAChC,qBAAmB,EAAEzB,MAAA,CAAA0B,iBAAiB;QACtC,WAAS,EAAE1B,MAAA,CAAA2B,QAAQ;QACnB,cAAY,EAAE3B,MAAA,CAAA4B,WAAW;QACzB,eAAa,EAAE5B,MAAA,CAAA6B,YAAY;QAC3B,oBAAkB,EAAE7B,MAAA,CAAA8B,iBAAiB;QACrC,mBAAiB,EAAE9B,MAAA,CAAA+B,eAAe;QAClC,gBAAc,EAAE/B,MAAA,CAAAgC,aAAa;QAC7BC,oBAAqB,EAAEjC,MAAA,CAAAkC,sBAAsB;QAC7CC,qBAAsB,EAAEnC,MAAA,CAAAoC,uBAAuB;QAC/CC,aAAa,EAAErC,MAAA,CAAAsC,WAAW;QAC1BC,YAAW,EAAEvC,MAAA,CAAAwC,UAAU;QACvBC,YAAW,EAAEzC,MAAA,CAAA0C,UAAU;QACvBC,UAAS,EAAE3C,MAAA,CAAA4C,QAAQ;QACnBC,eAAe,EAAE7C,MAAA,CAAA8C,aAAa;QAC9BC,uBAAuB,EAAE/C,MAAA,CAAAgD,qBAAqB;QAC9CC,oBAAoB,EAAEjD,MAAA,CAAAkD,kBAAkB;QACxCC,yBAAyB,EAAEnD,MAAA,CAAAoD,uBAAuB;QAClDC,uBAAwB,EAAErD,MAAA,CAAAsD,qBAAqB;QAC/CC,gBAAgB,EAAEvD,MAAA,CAAAwD,cAAc;QAChCC,YAAY,EAAEzD,MAAA,CAAA0D;;;QAKrBhE,mBAAA,YAAe,EACfI,YAAA,CAyBcO,sBAAA;MAzBDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAuBM,CAvBNZ,mBAAA,CAuBM,OAvBNgE,UAuBM,GAtBJ7D,YAAA,CAqBE8D,8BAAA;QApBCC,MAAM,EAAE7D,MAAA,CAAA6D,MAAM;QACd,mBAAiB,EAAE7D,MAAA,CAAA8D,eAAe;QAClC,aAAW,EAAE9D,MAAA,CAAA+D,UAAU;QACvB,UAAQ,EAAE/D,MAAA,CAAAc,OAAO;QACjB,oBAAkB,EAAEd,MAAA,CAAAgE,iBAAiB;QACrC,iBAAe,EAAEhE,MAAA,CAAAiE,cAAc;QAC/B,cAAY,EAAEjE,MAAA,CAAAkE,WAAW;QACzB,WAAS,EAAElE,MAAA,CAAAmE,QAAQ;QACnBzD,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9ByD,UAAS,EAAEpE,MAAA,CAAAqE,QAAQ;QACnBC,UAAS,EAAEtE,MAAA,CAAAuE,QAAQ;QACnBC,aAAY,EAAExE,MAAA,CAAAyE,WAAW;QACzBC,aAAY,EAAE1E,MAAA,CAAA2E,WAAW;QACzBC,eAAe,EAAE5E,MAAA,CAAA6E,aAAa;QAC9BC,aAAa,EAAE9E,MAAA,CAAA+E,WAAW;QAC1BC,WAAW,EAAEhF,MAAA,CAAAiF,SAAS;QACtBC,aAAY,EAAElF,MAAA,CAAAmF,WAAW;QACzBC,yBAAyB,EAAEpF,MAAA,CAAAqF,uBAAuB;QAClDC,sBAAsB,EAAEtF,MAAA,CAAAuF,oBAAoB;QAC5CC,mBAAmB,EAAExF,MAAA,CAAAyF;;;;;uDAQlC/F,mBAAA,YAAe,EACfC,mBAAA,CA0BM,OA1BN+F,UA0BM,GAzBJ5F,YAAA,CAKE6F,oBAAA;IAJCC,IAAI,EAAE5F,MAAA,CAAAC,WAAW;IACjB4F,WAAU,EAAE7F,MAAA,CAAA6F,WAAW;IACvBC,UAAS,EAAE9F,MAAA,CAAA8F,UAAU;IACtBC,GAAG,EAAC;kEAGNrG,mBAAA,YAAe,EACJM,MAAA,CAAAc,OAAO,I,cAAlBtB,mBAAA,CAMM,OANNwG,UAMM,GALJlG,YAAA,CAIEmG,mBAAA;IAHCC,KAAK,EAAElG,MAAA,CAAAmG,aAAa;IACrBC,IAAI,EAAC,MAAM;IACX,WAAS,EAAT;6EAIJ1G,mBAAA,YAAe,EACJM,MAAA,CAAA2B,QAAQ,I,cAAnBnC,mBAAA,CAOM,OAPN6G,UAOM,GANJvG,YAAA,CAKEmG,mBAAA;IAJCC,KAAK,EAAElG,MAAA,CAAAsG,UAAU;IAClBF,IAAI,EAAC,MAAM;IACX,WAAS,EAAT,EAAS;IACRG,QAAQ,EAAE;+EAKjB7G,mBAAA,cAAiB,EACjBI,YAAA,CAmCY0G,oBAAA;gBAlCDxG,MAAA,CAAAyG,iBAAiB;+DAAjBzG,MAAA,CAAAyG,iBAAiB,GAAAvG,MAAA;IAC1BgG,KAAK,EAAC,OAAO;IACbQ,KAAK,EAAC;;IA4BKC,MAAM,EAAAC,QAAA,CACf,MAA4D,CAA5D9G,YAAA,CAA4D+G,oBAAA;MAAhDC,OAAK,EAAAC,MAAA,QAAAA,MAAA,MAAA7G,MAAA,IAAEF,MAAA,CAAAyG,iBAAiB;;wBAAU,MAAEM,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;QAChDjH,YAAA,CAAgE+G,oBAAA;MAArDT,IAAI,EAAC,SAAS;MAAEU,OAAK,EAAE9G,MAAA,CAAAwD;;wBAAgB,MAAEuD,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;;sBA5BtD,MAyBU,CAzBVjH,YAAA,CAyBUkH,kBAAA;MAzBAC,KAAK,EAAEjH,MAAA,CAAAkH,QAAQ;MAAE,aAAW,EAAC,MAAM;MAACC,IAAI,EAAC;;wBACjD,MAQe,CARfrH,YAAA,CAQesH,uBAAA;QARD9G,KAAK,EAAC;MAAM;0BACxB,MAMY,CANZR,YAAA,CAMYuH,oBAAA;sBANQrH,MAAA,CAAAkH,QAAQ,CAACd,IAAI;qEAAbpG,MAAA,CAAAkH,QAAQ,CAACd,IAAI,GAAAlG,MAAA;UAAEoH,KAAmB,EAAnB;YAAA;UAAA;;4BACjC,MAAwC,CAAxCxH,YAAA,CAAwCyH,oBAAA;YAA7BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA0CyH,oBAAA;YAA/BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA2CyH,oBAAA;YAAhCjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAAyCyH,oBAAA;YAA9BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA0CyH,oBAAA;YAA/BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;;;;;UAGlC1H,YAAA,CAOesH,uBAAA;QAPD9G,KAAK,EAAC;MAAM;0BACxB,MAKY,CALZR,YAAA,CAKYuH,oBAAA;sBALQrH,MAAA,CAAAkH,QAAQ,CAACO,KAAK;qEAAdzH,MAAA,CAAAkH,QAAQ,CAACO,KAAK,GAAAvH,MAAA;UAAEoH,KAAmB,EAAnB;YAAA;UAAA;;4BAClC,MAAqC,CAArCxH,YAAA,CAAqCyH,oBAAA;YAA1BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAAwCyH,oBAAA;YAA7BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAAsCyH,oBAAA;YAA3BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAA2CyH,oBAAA;YAAhCjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;;;;;UAGlC1H,YAAA,CAMesH,uBAAA;QAND9G,KAAK,EAAC;MAAM;0BACxB,MAIE,CAJFR,YAAA,CAIE4H,mBAAA;sBAHS1H,MAAA,CAAAkH,QAAQ,CAACS,WAAW;qEAApB3H,MAAA,CAAAkH,QAAQ,CAACS,WAAW,GAAAzH,MAAA;UAC7BkG,IAAI,EAAC,UAAU;UACdwB,IAAI,EAAE","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/3d6914ff08c63197db9b5bcfe0e1ec573f5cd24a8aa3928bd8060087d708994b.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/3d6914ff08c63197db9b5bcfe0e1ec573f5cd24a8aa3928bd8060087d708994b.json new file mode 100644 index 00000000..0d1633aa --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/3d6914ff08c63197db9b5bcfe0e1ec573f5cd24a8aa3928bd8060087d708994b.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4396dae7fa0e9a072290d80702069d53c55211aa1a4e5a13eedb4053743a8cb4.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4396dae7fa0e9a072290d80702069d53c55211aa1a4e5a13eedb4053743a8cb4.json new file mode 100644 index 00000000..416245f7 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4396dae7fa0e9a072290d80702069d53c55211aa1a4e5a13eedb4053743a8cb4.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4619a8a1a78d154b20e1329c8017bd07dfce45ad0b56f3ef9038ebd72d7f94cf.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4619a8a1a78d154b20e1329c8017bd07dfce45ad0b56f3ef9038ebd72d7f94cf.json new file mode 100644 index 00000000..7dce3c9f --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4619a8a1a78d154b20e1329c8017bd07dfce45ad0b56f3ef9038ebd72d7f94cf.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n try {\n console.log('准备发送威胁区数据:', zoneData);\n\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n console.log('API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('API错误响应:', errorText);\n throw new Error(`保存威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('API成功响应:', result);\n if (result.success) {\n const zone = result.data;\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n console.log('解析覆盖物几何信息:', overlay.CLASS_NAME || overlay.className);\n try {\n if (overlay.CLASS_NAME === 'AMap.Circle' || overlay.className === 'Overlay.Circle') {\n const center = overlay.getCenter();\n const radius = overlay.getRadius();\n console.log('圆形几何信息:', {\n center,\n radius\n });\n return {\n type: 'circle',\n center: [center.lng, center.lat],\n radius: radius\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon' || overlay.className === 'Overlay.Polygon') {\n const path = overlay.getPath();\n console.log('多边形几何信息:', path);\n return {\n type: 'polygon',\n path: path.map(point => [point.lng, point.lat])\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle' || overlay.className === 'Overlay.Rectangle') {\n const bounds = overlay.getBounds();\n console.log('矩形几何信息:', bounds);\n return {\n type: 'rectangle',\n bounds: [bounds.getSouthWest().lng, bounds.getSouthWest().lat, bounds.getNorthEast().lng, bounds.getNorthEast().lat]\n };\n }\n } catch (error) {\n console.error('解析几何信息失败:', error);\n }\n console.error('未识别的覆盖物类型:', overlay.CLASS_NAME || overlay.className);\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n console.log('请求URL: /api/threat-zones');\n const response = await fetch('/api/threat-zones');\n console.log('加载API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('加载API错误响应:', errorText);\n throw new Error(`获取威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('加载API成功响应:', result);\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n let overlay = null;\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n overlay = new AMap.Circle({\n center: zone.geometry.center,\n radius: zone.geometry.radius,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'polygon') {\n overlay = new AMap.Polygon({\n path: zone.geometry.path,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'rectangle') {\n overlay = new AMap.Rectangle({\n bounds: zone.geometry.bounds,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n }\n if (overlay) {\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n\n // 添加点击事件\n overlay.on('click', () => {\n selectZone(zone.id);\n });\n console.log(`威胁区 ${zone.id} 已渲染到地图`);\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = async () => {\n try {\n console.log('开始更新威胁区:', editForm.value.id);\n const response = await fetch(`/api/threat-zones/${editForm.value.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n type: editForm.value.type,\n level: editForm.value.level,\n description: editForm.value.description\n })\n });\n if (!response.ok) {\n throw new Error('更新威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 更新本地数据\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n }\n ElMessage.success('威胁区已更新');\n console.log('威胁区更新成功:', result.data);\n } else {\n throw new Error(result.message || '更新威胁区失败');\n }\n } catch (error) {\n console.error('更新威胁区失败:', error);\n ElMessage.error('更新威胁区失败: ' + error.message);\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = async (skipConfirm = false) => {\n try {\n if (!skipConfirm && threatZones.value.length > 0) {\n // 批量删除所有威胁区\n const zoneIds = threatZones.value.map(zone => zone.id);\n console.log('开始批量删除威胁区:', zoneIds);\n const response = await fetch('/api/threat-zones', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n ids: zoneIds\n })\n });\n if (!response.ok) {\n throw new Error('批量删除威胁区失败');\n }\n const result = await response.json();\n if (!result.success) {\n throw new Error(result.message || '批量删除威胁区失败');\n }\n console.log('威胁区批量删除成功:', result.data);\n }\n\n // 从地图移除所有覆盖物\n Object.values(zoneOverlays).forEach(overlay => {\n if (mapInstance.value) {\n mapInstance.value.remove(overlay);\n }\n });\n\n // 清空数据\n threatZones.value = [];\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n if (!skipConfirm) {\n ElMessage.success('已清除所有威胁区');\n }\n } catch (error) {\n console.error('清除威胁区失败:', error);\n if (!skipConfirm) {\n ElMessage.error('清除威胁区失败: ' + error.message);\n }\n }\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","addTestThreatZone","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zoneData","getGeometryFromOverlay","response","fetch","method","headers","body","JSON","stringify","statusText","ok","errorText","text","Error","result","json","zone","data","getCenter","getRadius","path","getPath","point","bounds","getBounds","getSouthWest","getNorthEast","clearAllZones","renderThreatZoneOnMap","Polygon","Rectangle","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","skipConfirm","zoneIds","ids","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/46903185ba8752b25138aab196693301f112e06a95ae1826dfd3f16312917fb0.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/46903185ba8752b25138aab196693301f112e06a95ae1826dfd3f16312917fb0.json new file mode 100644 index 00000000..b037a784 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/46903185ba8752b25138aab196693301f112e06a95ae1826dfd3f16312917fb0.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4b76937357d59948aeb0149e754df586c1946901ba5dc0b10c88bd6c7d4fadac.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4b76937357d59948aeb0149e754df586c1946901ba5dc0b10c88bd6c7d4fadac.json new file mode 100644 index 00000000..a5bd5e96 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4b76937357d59948aeb0149e754df586c1946901ba5dc0b10c88bd6c7d4fadac.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4d32638fdb238c7e06d1b4e4113f278b3fd594b0a05a82d463239a68c639a6e5.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4d32638fdb238c7e06d1b4e4113f278b3fd594b0a05a82d463239a68c639a6e5.json new file mode 100644 index 00000000..5b9cafde --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4d32638fdb238c7e06d1b4e4113f278b3fd594b0a05a82d463239a68c639a6e5.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4d8f73429628707dd5f50132185a15ee8e220de503f1967b7b330f6a5691efde.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4d8f73429628707dd5f50132185a15ee8e220de503f1967b7b330f6a5691efde.json new file mode 100644 index 00000000..b1f81655 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/4d8f73429628707dd5f50132185a15ee8e220de503f1967b7b330f6a5691efde.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const geometry = getGeometryFromOverlay(overlay);\n\n // 验证必需字段\n if (!currentThreatType.value) {\n console.error('威胁类型为空:', currentThreatType.value);\n ElMessage.error('请选择威胁类型');\n return;\n }\n if (!threatLevel.value) {\n console.error('威胁等级为空:', threatLevel.value);\n ElMessage.error('请选择威胁等级');\n return;\n }\n if (!geometry) {\n console.error('几何信息解析失败');\n ElMessage.error('无法解析威胁区形状信息');\n return;\n }\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value || '',\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: geometry\n };\n try {\n console.log('准备发送威胁区数据:', zoneData);\n console.log('当前威胁类型:', currentThreatType.value);\n console.log('当前威胁等级:', threatLevel.value);\n console.log('当前描述:', threatDescription.value);\n console.log('几何信息:', geometry);\n\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n console.log('API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('API错误响应:', errorText);\n throw new Error(`保存威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('API成功响应:', result);\n if (result.success) {\n const zone = result.data;\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n console.log('解析覆盖物几何信息:', overlay.CLASS_NAME || overlay.className);\n try {\n if (overlay.CLASS_NAME === 'AMap.Circle' || overlay.className === 'Overlay.Circle') {\n const center = overlay.getCenter();\n const radius = overlay.getRadius();\n console.log('圆形几何信息:', {\n center,\n radius\n });\n return {\n type: 'circle',\n center: [center.lng, center.lat],\n radius: radius\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon' || overlay.className === 'Overlay.Polygon') {\n const path = overlay.getPath();\n console.log('多边形几何信息:', path);\n return {\n type: 'polygon',\n path: path.map(point => [point.lng, point.lat])\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle' || overlay.className === 'Overlay.Rectangle') {\n const bounds = overlay.getBounds();\n console.log('矩形几何信息:', bounds);\n return {\n type: 'rectangle',\n bounds: [bounds.getSouthWest().lng, bounds.getSouthWest().lat, bounds.getNorthEast().lng, bounds.getNorthEast().lat]\n };\n }\n } catch (error) {\n console.error('解析几何信息失败:', error);\n }\n console.error('未识别的覆盖物类型:', overlay.CLASS_NAME || overlay.className);\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n console.log('请求URL: /api/threat-zones');\n const response = await fetch('/api/threat-zones');\n console.log('加载API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('加载API错误响应:', errorText);\n throw new Error(`获取威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('加载API成功响应:', result);\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n let overlay = null;\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n overlay = new AMap.Circle({\n center: zone.geometry.center,\n radius: zone.geometry.radius,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'polygon') {\n overlay = new AMap.Polygon({\n path: zone.geometry.path,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'rectangle') {\n overlay = new AMap.Rectangle({\n bounds: zone.geometry.bounds,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n }\n if (overlay) {\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n\n // 添加点击事件\n overlay.on('click', () => {\n selectZone(zone.id);\n });\n console.log(`威胁区 ${zone.id} 已渲染到地图`);\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = async () => {\n try {\n console.log('开始更新威胁区:', editForm.value.id);\n const response = await fetch(`/api/threat-zones/${editForm.value.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n type: editForm.value.type,\n level: editForm.value.level,\n description: editForm.value.description\n })\n });\n if (!response.ok) {\n throw new Error('更新威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 更新本地数据\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n }\n ElMessage.success('威胁区已更新');\n console.log('威胁区更新成功:', result.data);\n } else {\n throw new Error(result.message || '更新威胁区失败');\n }\n } catch (error) {\n console.error('更新威胁区失败:', error);\n ElMessage.error('更新威胁区失败: ' + error.message);\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = async (skipConfirm = false) => {\n try {\n if (!skipConfirm && threatZones.value.length > 0) {\n // 批量删除所有威胁区\n const zoneIds = threatZones.value.map(zone => zone.id);\n console.log('开始批量删除威胁区:', zoneIds);\n const response = await fetch('/api/threat-zones', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n ids: zoneIds\n })\n });\n if (!response.ok) {\n throw new Error('批量删除威胁区失败');\n }\n const result = await response.json();\n if (!result.success) {\n throw new Error(result.message || '批量删除威胁区失败');\n }\n console.log('威胁区批量删除成功:', result.data);\n }\n\n // 从地图移除所有覆盖物\n Object.values(zoneOverlays).forEach(overlay => {\n if (mapInstance.value) {\n mapInstance.value.remove(overlay);\n }\n });\n\n // 清空数据\n threatZones.value = [];\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n if (!skipConfirm) {\n ElMessage.success('已清除所有威胁区');\n }\n } catch (error) {\n console.error('清除威胁区失败:', error);\n if (!skipConfirm) {\n ElMessage.error('清除威胁区失败: ' + error.message);\n }\n }\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","addTestThreatZone","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","getGeometryFromOverlay","zoneData","response","fetch","method","headers","body","JSON","stringify","statusText","ok","errorText","text","Error","result","json","zone","data","getCenter","getRadius","path","getPath","point","bounds","getBounds","getSouthWest","getNorthEast","clearAllZones","renderThreatZoneOnMap","Polygon","Rectangle","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","skipConfirm","zoneIds","ids","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/510df2daf387b1212130f48ee194d9afc3344a9107044d1871c8fd493962dcfb.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/510df2daf387b1212130f48ee194d9afc3344a9107044d1871c8fd493962dcfb.json new file mode 100644 index 00000000..d746f9c5 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/510df2daf387b1212130f48ee194d9afc3344a9107044d1871c8fd493962dcfb.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/523466c5dbe2165cd68847061b63148ee072ab7c8a914993a504593838e23760.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/523466c5dbe2165cd68847061b63148ee072ab7c8a914993a504593838e23760.json new file mode 100644 index 00000000..203bf421 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/523466c5dbe2165cd68847061b63148ee072ab7c8a914993a504593838e23760.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/540d71f8f62b68a8574169f13b2912e3358eaa894cae29b4e16e5f8ae301a36a.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/540d71f8f62b68a8574169f13b2912e3358eaa894cae29b4e16e5f8ae301a36a.json new file mode 100644 index 00000000..9555ab8f --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/540d71f8f62b68a8574169f13b2912e3358eaa894cae29b4e16e5f8ae301a36a.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n try {\n console.log('准备发送威胁区数据:', zoneData);\n\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n console.log('API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('API错误响应:', errorText);\n throw new Error(`保存威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('API成功响应:', result);\n if (result.success) {\n const zone = result.data;\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n const response = await fetch('/api/threat-zones');\n if (!response.ok) {\n throw new Error('获取威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n let overlay = null;\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n overlay = new AMap.Circle({\n center: zone.geometry.center,\n radius: zone.geometry.radius,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'polygon') {\n overlay = new AMap.Polygon({\n path: zone.geometry.path,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'rectangle') {\n overlay = new AMap.Rectangle({\n bounds: zone.geometry.bounds,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n }\n if (overlay) {\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n\n // 添加点击事件\n overlay.on('click', () => {\n selectZone(zone.id);\n });\n console.log(`威胁区 ${zone.id} 已渲染到地图`);\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = async () => {\n try {\n console.log('开始更新威胁区:', editForm.value.id);\n const response = await fetch(`/api/threat-zones/${editForm.value.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n type: editForm.value.type,\n level: editForm.value.level,\n description: editForm.value.description\n })\n });\n if (!response.ok) {\n throw new Error('更新威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 更新本地数据\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n }\n ElMessage.success('威胁区已更新');\n console.log('威胁区更新成功:', result.data);\n } else {\n throw new Error(result.message || '更新威胁区失败');\n }\n } catch (error) {\n console.error('更新威胁区失败:', error);\n ElMessage.error('更新威胁区失败: ' + error.message);\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = async (skipConfirm = false) => {\n try {\n if (!skipConfirm && threatZones.value.length > 0) {\n // 批量删除所有威胁区\n const zoneIds = threatZones.value.map(zone => zone.id);\n console.log('开始批量删除威胁区:', zoneIds);\n const response = await fetch('/api/threat-zones', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n ids: zoneIds\n })\n });\n if (!response.ok) {\n throw new Error('批量删除威胁区失败');\n }\n const result = await response.json();\n if (!result.success) {\n throw new Error(result.message || '批量删除威胁区失败');\n }\n console.log('威胁区批量删除成功:', result.data);\n }\n\n // 从地图移除所有覆盖物\n Object.values(zoneOverlays).forEach(overlay => {\n if (mapInstance.value) {\n mapInstance.value.remove(overlay);\n }\n });\n\n // 清空数据\n threatZones.value = [];\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n if (!skipConfirm) {\n ElMessage.success('已清除所有威胁区');\n }\n } catch (error) {\n console.error('清除威胁区失败:', error);\n if (!skipConfirm) {\n ElMessage.error('清除威胁区失败: ' + error.message);\n }\n }\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","addTestThreatZone","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zoneData","getGeometryFromOverlay","response","fetch","method","headers","body","JSON","stringify","statusText","ok","errorText","text","Error","result","json","zone","data","getCenter","getRadius","path","getPath","bounds","getBounds","clearAllZones","renderThreatZoneOnMap","Polygon","Rectangle","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","skipConfirm","zoneIds","ids","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/5575080d1a863950450500c9fbb892ed7fb6d3d64716eae0ba2706caab2d5493.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/5575080d1a863950450500c9fbb892ed7fb6d3d64716eae0ba2706caab2d5493.json new file mode 100644 index 00000000..c9badbb4 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/5575080d1a863950450500c9fbb892ed7fb6d3d64716eae0ba2706caab2d5493.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/5f64de7714ed2b1e1e22edc4ec1ce87f312b74e0cdf32b8b9f8a49b676076149.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/5f64de7714ed2b1e1e22edc4ec1ce87f312b74e0cdf32b8b9f8a49b676076149.json new file mode 100644 index 00000000..9ce30088 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/5f64de7714ed2b1e1e22edc4ec1ce87f312b74e0cdf32b8b9f8a49b676076149.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/61ab996891776247c590dba8f663cde49e968c2e263284a1fde14064ceae87a6.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/61ab996891776247c590dba8f663cde49e968c2e263284a1fde14064ceae87a6.json new file mode 100644 index 00000000..11522de5 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/61ab996891776247c590dba8f663cde49e968c2e263284a1fde14064ceae87a6.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n overlay.setOptions(styleOptions);\n\n // 确保覆盖物被添加到地图\n // MouseTool绘制的覆盖物通常已经自动添加到地图,但我们确保一下\n try {\n mapInstance.value.add(overlay);\n } catch (error) {\n // 如果已经存在则忽略错误\n console.log('覆盖物可能已存在于地图中');\n }\n console.log('威胁区绘制完成:', overlay);\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","styleOptions","setOptions","zone","getGeometryFromOverlay","CLASS_NAME","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6cb3e1479c1a34c6075d60edca7de53875d0f587daffdc33ad370e85b6dd494b.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6cb3e1479c1a34c6075d60edca7de53875d0f587daffdc33ad370e85b6dd494b.json new file mode 100644 index 00000000..4975ed53 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6cb3e1479c1a34c6075d60edca7de53875d0f587daffdc33ad370e85b6dd494b.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n try {\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n if (!response.ok) {\n throw new Error('保存威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n const zone = result.data;\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n const response = await fetch('/api/threat-zones');\n if (!response.ok) {\n throw new Error('获取威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n let overlay = null;\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n overlay = new AMap.Circle({\n center: zone.geometry.center,\n radius: zone.geometry.radius,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'polygon') {\n overlay = new AMap.Polygon({\n path: zone.geometry.path,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'rectangle') {\n overlay = new AMap.Rectangle({\n bounds: zone.geometry.bounds,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n }\n if (overlay) {\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n\n // 添加点击事件\n overlay.on('click', () => {\n selectZone(zone.id);\n });\n console.log(`威胁区 ${zone.id} 已渲染到地图`);\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = async () => {\n try {\n console.log('开始更新威胁区:', editForm.value.id);\n const response = await fetch(`/api/threat-zones/${editForm.value.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n type: editForm.value.type,\n level: editForm.value.level,\n description: editForm.value.description\n })\n });\n if (!response.ok) {\n throw new Error('更新威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 更新本地数据\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n }\n ElMessage.success('威胁区已更新');\n console.log('威胁区更新成功:', result.data);\n } else {\n throw new Error(result.message || '更新威胁区失败');\n }\n } catch (error) {\n console.error('更新威胁区失败:', error);\n ElMessage.error('更新威胁区失败: ' + error.message);\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n // 清空非响应式对象\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zoneData","getGeometryFromOverlay","response","fetch","method","headers","body","JSON","stringify","ok","Error","result","json","zone","data","getCenter","getRadius","path","getPath","bounds","getBounds","clearAllZones","renderThreatZoneOnMap","Polygon","Rectangle","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6ceb9986ba4dd44916ec43cd2cdb494e947b9b6bd1bff161ea613177fe78c387.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6ceb9986ba4dd44916ec43cd2cdb494e947b9b6bd1bff161ea613177fe78c387.json new file mode 100644 index 00000000..c03a8c4b --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6ceb9986ba4dd44916ec43cd2cdb494e947b9b6bd1bff161ea613177fe78c387.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) return;\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","radius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","strokeColor","strokeWeight","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","setOptions","strokeOpacity","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6e502e811bb3fc28cfb193222844a17141b010ad6af65a7562e17953724aa655.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6e502e811bb3fc28cfb193222844a17141b010ad6af65a7562e17953724aa655.json new file mode 100644 index 00000000..0fdb636b --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6e502e811bb3fc28cfb193222844a17141b010ad6af65a7562e17953724aa655.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createStore } from 'vuex';\nimport axios from 'axios';\nconst API_URL = process.env.VUE_APP_API_URL || 'http://localhost:3000';\nconst auth = {\n namespaced: true,\n state: () => ({\n isLoggedIn: !!localStorage.getItem('token'),\n user: JSON.parse(localStorage.getItem('user') || 'null'),\n token: localStorage.getItem('token') || ''\n }),\n mutations: {\n setLogin(state, {\n user,\n token\n }) {\n state.isLoggedIn = true;\n state.user = user;\n state.token = token;\n localStorage.setItem('token', token);\n localStorage.setItem('user', JSON.stringify(user));\n },\n setLogout(state) {\n state.isLoggedIn = false;\n state.user = null;\n state.token = '';\n localStorage.removeItem('token');\n localStorage.removeItem('user');\n }\n },\n actions: {\n async login({\n commit\n }, {\n username,\n password\n }) {\n try {\n const res = await axios.post(`${API_URL}/api/auth/login`, {\n username,\n password\n });\n if (res.data && res.data.success) {\n commit('setLogin', {\n user: res.data.user,\n token: res.data.token\n });\n return {\n success: true\n };\n } else {\n return {\n success: false,\n message: res.data.message || '登录失败'\n };\n }\n } catch (e) {\n return {\n success: false,\n message: e.response?.data?.message || '网络错误'\n };\n }\n },\n logout({\n commit\n }) {\n commit('setLogout');\n }\n }\n};\nconst drones = {\n namespaced: true,\n state: () => ({\n list: []\n }),\n mutations: {\n setDrones(state, drones) {\n state.list = drones;\n }\n },\n actions: {\n async fetchDrones({\n commit,\n rootState\n }) {\n // 这里应调用后端API获取无人机列表\n const token = rootState.auth.token;\n try {\n const res = await axios.get(`${API_URL}/api/drones`, {\n headers: {\n Authorization: `Bearer ${token}`\n }\n });\n commit('setDrones', res.data.data || []);\n } catch {\n commit('setDrones', []);\n }\n }\n }\n};\nexport default createStore({\n state: {\n // 根级别的无人机状态,用于兼容MapView\n drones: []\n },\n mutations: {\n // 根级别的无人机mutations\n SET_DRONES(state, drones) {\n state.drones = drones;\n },\n setDrones(state, drones) {\n state.drones = drones;\n }\n },\n actions: {\n // 根级别的无人机actions\n async fetchDrones({\n commit,\n state\n }) {\n try {\n const token = state.auth?.token || localStorage.getItem('token');\n const headers = {};\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n const res = await axios.get(`${API_URL}/api/drones`, {\n headers\n });\n if (res.data && res.data.success && Array.isArray(res.data.data)) {\n commit('SET_DRONES', res.data.data);\n } else if (res.data && Array.isArray(res.data)) {\n commit('SET_DRONES', res.data);\n } else {\n throw new Error('无效的数据格式');\n }\n } catch (error) {\n console.warn('获取无人机数据失败,使用模拟数据:', error);\n // 使用模拟数据\n const mockDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }, {\n id: 3,\n name: '攻击无人机-03',\n latitude: 39.8950,\n longitude: 116.3900,\n status: 'active',\n battery: 95\n }];\n commit('SET_DRONES', mockDrones);\n }\n }\n },\n modules: {\n auth,\n drones\n }\n});","map":{"version":3,"names":["createStore","axios","API_URL","process","env","VUE_APP_API_URL","auth","namespaced","state","isLoggedIn","localStorage","getItem","user","JSON","parse","token","mutations","setLogin","setItem","stringify","setLogout","removeItem","actions","login","commit","username","password","res","post","data","success","message","e","response","logout","drones","list","setDrones","fetchDrones","rootState","get","headers","Authorization","SET_DRONES","Array","isArray","Error","error","console","warn","mockDrones","id","name","latitude","longitude","status","battery","modules"],"sources":["E:/大三下/软件工程/command_center(1)/command_center/web-command-center/frontend/src/store/index.js"],"sourcesContent":["import { createStore } from 'vuex'\r\nimport axios from 'axios'\r\n\r\nconst API_URL = process.env.VUE_APP_API_URL || 'http://localhost:3000'\r\n\r\nconst auth = {\r\n namespaced: true,\r\n state: () => ({\r\n isLoggedIn: !!localStorage.getItem('token'),\r\n user: JSON.parse(localStorage.getItem('user') || 'null'),\r\n token: localStorage.getItem('token') || ''\r\n }),\r\n mutations: {\r\n setLogin(state, { user, token }) {\r\n state.isLoggedIn = true\r\n state.user = user\r\n state.token = token\r\n localStorage.setItem('token', token)\r\n localStorage.setItem('user', JSON.stringify(user))\r\n },\r\n setLogout(state) {\r\n state.isLoggedIn = false\r\n state.user = null\r\n state.token = ''\r\n localStorage.removeItem('token')\r\n localStorage.removeItem('user')\r\n }\r\n },\r\n actions: {\r\n async login({ commit }, { username, password }) {\r\n try {\r\n const res = await axios.post(`${API_URL}/api/auth/login`, { username, password })\r\n if (res.data && res.data.success) {\r\n commit('setLogin', { user: res.data.user, token: res.data.token })\r\n return { success: true }\r\n } else {\r\n return { success: false, message: res.data.message || '登录失败' }\r\n }\r\n } catch (e) {\r\n return { success: false, message: e.response?.data?.message || '网络错误' }\r\n }\r\n },\r\n logout({ commit }) {\r\n commit('setLogout')\r\n }\r\n }\r\n}\r\n\r\nconst drones = {\r\n namespaced: true,\r\n state: () => ({\r\n list: []\r\n }),\r\n mutations: {\r\n setDrones(state, drones) {\r\n state.list = drones\r\n }\r\n },\r\n actions: {\r\n async fetchDrones({ commit, rootState }) {\r\n // 这里应调用后端API获取无人机列表\r\n const token = rootState.auth.token\r\n try {\r\n const res = await axios.get(`${API_URL}/api/drones`, {\r\n headers: { Authorization: `Bearer ${token}` }\r\n })\r\n commit('setDrones', res.data.data || [])\r\n } catch {\r\n commit('setDrones', [])\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default createStore({\r\n state: {\r\n // 根级别的无人机状态,用于兼容MapView\r\n drones: []\r\n },\r\n mutations: {\r\n // 根级别的无人机mutations\r\n SET_DRONES(state, drones) {\r\n state.drones = drones\r\n },\r\n setDrones(state, drones) {\r\n state.drones = drones\r\n }\r\n },\r\n actions: {\r\n // 根级别的无人机actions\r\n async fetchDrones({ commit, state }) {\r\n try {\r\n const token = state.auth?.token || localStorage.getItem('token')\r\n const headers = {}\r\n if (token) {\r\n headers['Authorization'] = `Bearer ${token}`\r\n }\r\n \r\n const res = await axios.get(`${API_URL}/api/drones`, { headers })\r\n \r\n if (res.data && res.data.success && Array.isArray(res.data.data)) {\r\n commit('SET_DRONES', res.data.data)\r\n } else if (res.data && Array.isArray(res.data)) {\r\n commit('SET_DRONES', res.data)\r\n } else {\r\n throw new Error('无效的数据格式')\r\n }\r\n } catch (error) {\r\n console.warn('获取无人机数据失败,使用模拟数据:', error)\r\n // 使用模拟数据\r\n const mockDrones = [\r\n {\r\n id: 1,\r\n name: '侦察无人机-01',\r\n latitude: 39.9042,\r\n longitude: 116.4074,\r\n status: 'active',\r\n battery: 85\r\n },\r\n {\r\n id: 2,\r\n name: '运输无人机-02',\r\n latitude: 39.9100,\r\n longitude: 116.4200,\r\n status: 'idle',\r\n battery: 60\r\n },\r\n {\r\n id: 3,\r\n name: '攻击无人机-03',\r\n latitude: 39.8950,\r\n longitude: 116.3900,\r\n status: 'active',\r\n battery: 95\r\n }\r\n ]\r\n commit('SET_DRONES', mockDrones)\r\n }\r\n }\r\n },\r\n modules: {\r\n auth,\r\n drones\r\n }\r\n}) "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6f4794dd176d0f1219e4bf45c5a6a947b92430ac72597597563f651b664f2529.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6f4794dd176d0f1219e4bf45c5a6a947b92430ac72597597563f651b664f2529.json new file mode 100644 index 00000000..aa3f481d --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/6f4794dd176d0f1219e4bf45c5a6a947b92430ac72597597563f651b664f2529.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":";;EACOA,KAAK,EAAC;AAAkB;;EAEtBA,KAAK,EAAC;AAAY;;EAEhBA,KAAK,EAAC;AAAgB;;EAIhBA,KAAK,EAAC;AAAwB;;EAgB9BA,KAAK,EAAC;AAAwB;;EA0B9BA,KAAK,EAAC;AAAwB;;EA2BtCA,KAAK,EAAC;AAAe;;;EASJA,KAAK,EAAC;;;;EASLA,KAAK,EAAC;;;;;;;;;;;;;;;;;uBA/F/BC,mBAAA,CA8IM,OA9INC,UA8IM,GA7IJC,mBAAA,YAAe,EACfC,mBAAA,CAwEM,OAxENC,UAwEM,GAvEJF,mBAAA,eAAkB,EAClBC,mBAAA,CAqEM,OArENE,UAqEM,GApEJC,YAAA,CAmEUC,kBAAA;gBAnEQC,MAAA,CAAAC,WAAW;+DAAXD,MAAA,CAAAC,WAAW,GAAAC,MAAA;IAAGC,UAAS,EAAEH,MAAA,CAAAI,cAAc;IAAE,cAAY,EAAC;;sBACtE,MAAe,CAAfV,mBAAA,YAAe,EACfI,YAAA,CAacO,sBAAA;MAbDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAWM,CAXNZ,mBAAA,CAWM,OAXNa,UAWM,GAVJV,YAAA,CASEW,0BAAA;QARCC,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9BC,cAAa,EAAEZ,MAAA,CAAAa,YAAY;QAC3B,UAAQ,EAAEb,MAAA,CAAAc,OAAO;QACjB,eAAa,EAAEd,MAAA,CAAAe,YAAY;QAC3B,aAAW,EAAEf,MAAA,CAAAgB,UAAU;QACvB,iBAAe,EAAEhB,MAAA,CAAAiB,aAAa;QAC9BC,uBAAuB,EAAElB,MAAA,CAAAmB,qBAAqB;QAC9CC,iBAAiB,EAAEpB,MAAA,CAAAqB;;;QAK1B3B,mBAAA,aAAgB,EAChBI,YAAA,CAuBcO,sBAAA;MAvBDC,KAAK,EAAC,OAAO;MAACC,IAAI,EAAC;;wBAC9B,MAqBM,CArBNZ,mBAAA,CAqBM,OArBN2B,UAqBM,GApBJxB,YAAA,CAmBEyB,4BAAA;QAlBC,cAAY,EAAEvB,MAAA,CAAAwB,WAAW;QACzB,kBAAgB,EAAExB,MAAA,CAAAyB,cAAc;QAChC,qBAAmB,EAAEzB,MAAA,CAAA0B,iBAAiB;QACtC,WAAS,EAAE1B,MAAA,CAAA2B,QAAQ;QACnB,cAAY,EAAE3B,MAAA,CAAA4B,WAAW;QACzB,eAAa,EAAE5B,MAAA,CAAA6B,YAAY;QAC3B,oBAAkB,EAAE7B,MAAA,CAAA8B,iBAAiB;QACrC,mBAAiB,EAAE9B,MAAA,CAAA+B,eAAe;QAClC,gBAAc,EAAE/B,MAAA,CAAAgC,aAAa;QAC7BC,oBAAqB,EAAEjC,MAAA,CAAAkC,sBAAsB;QAC7CC,aAAa,EAAEnC,MAAA,CAAAoC,WAAW;QAC1BC,YAAW,EAAErC,MAAA,CAAAsC,UAAU;QACvBC,YAAW,EAAEvC,MAAA,CAAAwC,UAAU;QACvBC,UAAS,EAAEzC,MAAA,CAAA0C,QAAQ;QACnBC,eAAe,EAAE3C,MAAA,CAAA4C,aAAa;QAC9BC,uBAAuB,EAAE7C,MAAA,CAAA8C,qBAAqB;QAC9CC,gBAAgB,EAAE/C,MAAA,CAAAgD,cAAc;QAChCC,YAAY,EAAEjD,MAAA,CAAAkD;;;QAKrBxD,mBAAA,YAAe,EACfI,YAAA,CAsBcO,sBAAA;MAtBDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAoBM,CApBNZ,mBAAA,CAoBM,OApBNwD,UAoBM,GAnBJrD,YAAA,CAkBEsD,8BAAA;QAjBCC,MAAM,EAAErD,MAAA,CAAAqD,MAAM;QACd,mBAAiB,EAAErD,MAAA,CAAAsD,eAAe;QAClC,aAAW,EAAEtD,MAAA,CAAAuD,UAAU;QACvB,UAAQ,EAAEvD,MAAA,CAAAc,OAAO;QACjB,oBAAkB,EAAEd,MAAA,CAAAwD,iBAAiB;QACrC,iBAAe,EAAExD,MAAA,CAAAyD,cAAc;QAC/B,cAAY,EAAEzD,MAAA,CAAA0D,WAAW;QACzB,WAAS,EAAE1D,MAAA,CAAA2D,QAAQ;QACnBjD,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9BiD,UAAS,EAAE5D,MAAA,CAAA6D,QAAQ;QACnBC,UAAS,EAAE9D,MAAA,CAAA+D,QAAQ;QACnBC,aAAY,EAAEhE,MAAA,CAAAiE,WAAW;QACzBC,aAAY,EAAElE,MAAA,CAAAmE,WAAW;QACzBC,eAAe,EAAEpE,MAAA,CAAAqE,aAAa;QAC9BC,aAAa,EAAEtE,MAAA,CAAAuE,WAAW;QAC1BC,WAAW,EAAExE,MAAA,CAAAyE,SAAS;QACtBC,aAAY,EAAE1E,MAAA,CAAA2E;;;;;uDAQ3BjF,mBAAA,YAAe,EACfC,mBAAA,CA0BM,OA1BNiF,UA0BM,GAzBJ9E,YAAA,CAKE+E,oBAAA;IAJCC,IAAI,EAAE9E,MAAA,CAAAC,WAAW;IACjB8E,WAAU,EAAE/E,MAAA,CAAA+E,WAAW;IACvBC,UAAS,EAAEhF,MAAA,CAAAgF,UAAU;IACtBC,GAAG,EAAC;kEAGNvF,mBAAA,YAAe,EACJM,MAAA,CAAAc,OAAO,I,cAAlBtB,mBAAA,CAMM,OANN0F,UAMM,GALJpF,YAAA,CAIEqF,mBAAA;IAHCC,KAAK,EAAEpF,MAAA,CAAAqF,aAAa;IACrBC,IAAI,EAAC,MAAM;IACX,WAAS,EAAT;6EAIJ5F,mBAAA,YAAe,EACJM,MAAA,CAAA2B,QAAQ,I,cAAnBnC,mBAAA,CAOM,OAPN+F,UAOM,GANJzF,YAAA,CAKEqF,mBAAA;IAJCC,KAAK,EAAEpF,MAAA,CAAAwF,UAAU;IAClBF,IAAI,EAAC,MAAM;IACX,WAAS,EAAT,EAAS;IACRG,QAAQ,EAAE;+EAKjB/F,mBAAA,cAAiB,EACjBI,YAAA,CAmCY4F,oBAAA;gBAlCD1F,MAAA,CAAA2F,iBAAiB;+DAAjB3F,MAAA,CAAA2F,iBAAiB,GAAAzF,MAAA;IAC1BkF,KAAK,EAAC,OAAO;IACbQ,KAAK,EAAC;;IA4BKC,MAAM,EAAAC,QAAA,CACf,MAA4D,CAA5DhG,YAAA,CAA4DiG,oBAAA;MAAhDC,OAAK,EAAAC,MAAA,QAAAA,MAAA,MAAA/F,MAAA,IAAEF,MAAA,CAAA2F,iBAAiB;;wBAAU,MAAEM,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;QAChDnG,YAAA,CAAgEiG,oBAAA;MAArDT,IAAI,EAAC,SAAS;MAAEU,OAAK,EAAEhG,MAAA,CAAAgD;;wBAAgB,MAAEiD,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;;sBA5BtD,MAyBU,CAzBVnG,YAAA,CAyBUoG,kBAAA;MAzBAC,KAAK,EAAEnG,MAAA,CAAAoG,QAAQ;MAAE,aAAW,EAAC,MAAM;MAACC,IAAI,EAAC;;wBACjD,MAQe,CARfvG,YAAA,CAQewG,uBAAA;QARDhG,KAAK,EAAC;MAAM;0BACxB,MAMY,CANZR,YAAA,CAMYyG,oBAAA;sBANQvG,MAAA,CAAAoG,QAAQ,CAACd,IAAI;qEAAbtF,MAAA,CAAAoG,QAAQ,CAACd,IAAI,GAAApF,MAAA;UAAEsG,KAAmB,EAAnB;YAAA;UAAA;;4BACjC,MAAwC,CAAxC1G,YAAA,CAAwC2G,oBAAA;YAA7BnG,KAAK,EAAC,MAAM;YAACoG,KAAK,EAAC;cAC9B5G,YAAA,CAA0C2G,oBAAA;YAA/BnG,KAAK,EAAC,MAAM;YAACoG,KAAK,EAAC;cAC9B5G,YAAA,CAA2C2G,oBAAA;YAAhCnG,KAAK,EAAC,MAAM;YAACoG,KAAK,EAAC;cAC9B5G,YAAA,CAAyC2G,oBAAA;YAA9BnG,KAAK,EAAC,MAAM;YAACoG,KAAK,EAAC;cAC9B5G,YAAA,CAA0C2G,oBAAA;YAA/BnG,KAAK,EAAC,MAAM;YAACoG,KAAK,EAAC;;;;;UAGlC5G,YAAA,CAOewG,uBAAA;QAPDhG,KAAK,EAAC;MAAM;0BACxB,MAKY,CALZR,YAAA,CAKYyG,oBAAA;sBALQvG,MAAA,CAAAoG,QAAQ,CAACO,KAAK;qEAAd3G,MAAA,CAAAoG,QAAQ,CAACO,KAAK,GAAAzG,MAAA;UAAEsG,KAAmB,EAAnB;YAAA;UAAA;;4BAClC,MAAqC,CAArC1G,YAAA,CAAqC2G,oBAAA;YAA1BnG,KAAK,EAAC,KAAK;YAACoG,KAAK,EAAC;cAC7B5G,YAAA,CAAwC2G,oBAAA;YAA7BnG,KAAK,EAAC,KAAK;YAACoG,KAAK,EAAC;cAC7B5G,YAAA,CAAsC2G,oBAAA;YAA3BnG,KAAK,EAAC,KAAK;YAACoG,KAAK,EAAC;cAC7B5G,YAAA,CAA2C2G,oBAAA;YAAhCnG,KAAK,EAAC,MAAM;YAACoG,KAAK,EAAC;;;;;UAGlC5G,YAAA,CAMewG,uBAAA;QANDhG,KAAK,EAAC;MAAM;0BACxB,MAIE,CAJFR,YAAA,CAIE8G,mBAAA;sBAHS5G,MAAA,CAAAoG,QAAQ,CAACS,WAAW;qEAApB7G,MAAA,CAAAoG,QAAQ,CAACS,WAAW,GAAA3G,MAAA;UAC7BoF,IAAI,EAAC,UAAU;UACdwB,IAAI,EAAE","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/747bae8b7e7287eb8e549683cfadd303b3fdedb7d8bcb8ab2eb7ee49c38fd068.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/747bae8b7e7287eb8e549683cfadd303b3fdedb7d8bcb8ab2eb7ee49c38fd068.json new file mode 100644 index 00000000..ad66841e --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/747bae8b7e7287eb8e549683cfadd303b3fdedb7d8bcb8ab2eb7ee49c38fd068.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) return;\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","radius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","strokeColor","strokeWeight","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","setOptions","strokeOpacity","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/797cd7569670b54f239f276789fcaed76a96870aea98c7c9bb1d65841a66c443.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/797cd7569670b54f239f276789fcaed76a96870aea98c7c9bb1d65841a66c443.json new file mode 100644 index 00000000..9f1dd131 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/797cd7569670b54f239f276789fcaed76a96870aea98c7c9bb1d65841a66c443.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/7c0f91b1d12eded4225464d5000407670c13fcbde0be47ff5073bab04fc3777b.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/7c0f91b1d12eded4225464d5000407670c13fcbde0be47ff5073bab04fc3777b.json new file mode 100644 index 00000000..17ff2a72 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/7c0f91b1d12eded4225464d5000407670c13fcbde0be47ff5073bab04fc3777b.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n try {\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n if (!response.ok) {\n throw new Error('保存威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n const zone = result.data;\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n const response = await fetch('/api/threat-zones');\n if (!response.ok) {\n throw new Error('获取威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n let overlay = null;\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n overlay = new AMap.Circle({\n center: zone.geometry.center,\n radius: zone.geometry.radius,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'polygon') {\n overlay = new AMap.Polygon({\n path: zone.geometry.path,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'rectangle') {\n overlay = new AMap.Rectangle({\n bounds: zone.geometry.bounds,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n }\n if (overlay) {\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n\n // 添加点击事件\n overlay.on('click', () => {\n selectZone(zone.id);\n });\n console.log(`威胁区 ${zone.id} 已渲染到地图`);\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n // 清空非响应式对象\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zoneData","getGeometryFromOverlay","response","fetch","method","headers","body","JSON","stringify","ok","Error","result","json","zone","data","getCenter","getRadius","path","getPath","bounds","getBounds","clearAllZones","renderThreatZoneOnMap","Polygon","Rectangle","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/80e049eef30f39e4e1fbae8961e9b8603d6e554ff4983a2fb308b07f674ba39d.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/80e049eef30f39e4e1fbae8961e9b8603d6e554ff4983a2fb308b07f674ba39d.json new file mode 100644 index 00000000..7fcf01b9 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/80e049eef30f39e4e1fbae8961e9b8603d6e554ff4983a2fb308b07f674ba39d.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) return;\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","setDrawMode","mode","info","options","strokeColor","strokeWeight","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","radius","getRadius","path","getPath","bounds","getBounds","find","z","setOptions","strokeOpacity","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/82082ec34c36f9543c930eedc9a75cc0132dbc6bf9a572352aa88794e2c02319.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/82082ec34c36f9543c930eedc9a75cc0132dbc6bf9a572352aa88794e2c02319.json new file mode 100644 index 00000000..02211d33 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/82082ec34c36f9543c930eedc9a75cc0132dbc6bf9a572352aa88794e2c02319.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/82b3429bc3a17433c19ccb725508d0944d92ca2c3629487e77beb25893d21e74.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/82b3429bc3a17433c19ccb725508d0944d92ca2c3629487e77beb25893d21e74.json new file mode 100644 index 00000000..439c7fea --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/82b3429bc3a17433c19ccb725508d0944d92ca2c3629487e77beb25893d21e74.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/84b1e2f18be30ccdae1a022ff3a160cf7ef0d9edc1abe1f52907726285602f82.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/84b1e2f18be30ccdae1a022ff3a160cf7ef0d9edc1abe1f52907726285602f82.json new file mode 100644 index 00000000..725262fa --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/84b1e2f18be30ccdae1a022ff3a160cf7ef0d9edc1abe1f52907726285602f82.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/859c10cb2142bd4ea896f7c04f0362efcdc1088558e0e08a61b59efd6f216548.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/859c10cb2142bd4ea896f7c04f0362efcdc1088558e0e08a61b59efd6f216548.json new file mode 100644 index 00000000..6b80c13c --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/859c10cb2142bd4ea896f7c04f0362efcdc1088558e0e08a61b59efd6f216548.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n // 清空非响应式对象\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/879b861a995fa17005d8685bfe929329981aceb01eb7a10cd392a31357b4fc85.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/879b861a995fa17005d8685bfe929329981aceb01eb7a10cd392a31357b4fc85.json new file mode 100644 index 00000000..914eb6b3 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/879b861a995fa17005d8685bfe929329981aceb01eb7a10cd392a31357b4fc85.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) return;\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n overlay.setOptions(styleOptions);\n\n // 确保覆盖物被添加到地图\n if (!mapInstance.value.has(overlay)) {\n mapInstance.value.add(overlay);\n }\n console.log('威胁区绘制完成:', overlay);\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","radius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","strokeColor","strokeWeight","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","styleOptions","strokeOpacity","setOptions","has","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/8e15ffac29980c75fb0430f646682643b69a0e62d67dd11b77aee3a57ac8c5df.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/8e15ffac29980c75fb0430f646682643b69a0e62d67dd11b77aee3a57ac8c5df.json new file mode 100644 index 00000000..d9f83dcd --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/8e15ffac29980c75fb0430f646682643b69a0e62d67dd11b77aee3a57ac8c5df.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays.value[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/9057afc170999ca36f446ccc348e42b1fc585b6d3baa1faef2c55947b5fded5c.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/9057afc170999ca36f446ccc348e42b1fc585b6d3baa1faef2c55947b5fded5c.json new file mode 100644 index 00000000..11d7b33d --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/9057afc170999ca36f446ccc348e42b1fc585b6d3baa1faef2c55947b5fded5c.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n try {\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n if (!response.ok) {\n throw new Error('保存威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n const zone = result.data;\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n const response = await fetch('/api/threat-zones');\n if (!response.ok) {\n throw new Error('获取威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n let overlay = null;\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n overlay = new AMap.Circle({\n center: zone.geometry.center,\n radius: zone.geometry.radius,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'polygon') {\n overlay = new AMap.Polygon({\n path: zone.geometry.path,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'rectangle') {\n overlay = new AMap.Rectangle({\n bounds: zone.geometry.bounds,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n }\n if (overlay) {\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n\n // 添加点击事件\n overlay.on('click', () => {\n selectZone(zone.id);\n });\n console.log(`威胁区 ${zone.id} 已渲染到地图`);\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = async () => {\n try {\n console.log('开始更新威胁区:', editForm.value.id);\n const response = await fetch(`/api/threat-zones/${editForm.value.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n type: editForm.value.type,\n level: editForm.value.level,\n description: editForm.value.description\n })\n });\n if (!response.ok) {\n throw new Error('更新威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 更新本地数据\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n }\n ElMessage.success('威胁区已更新');\n console.log('威胁区更新成功:', result.data);\n } else {\n throw new Error(result.message || '更新威胁区失败');\n }\n } catch (error) {\n console.error('更新威胁区失败:', error);\n ElMessage.error('更新威胁区失败: ' + error.message);\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n // 清空非响应式对象\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","addTestThreatZone","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zoneData","getGeometryFromOverlay","response","fetch","method","headers","body","JSON","stringify","ok","Error","result","json","zone","data","getCenter","getRadius","path","getPath","bounds","getBounds","clearAllZones","renderThreatZoneOnMap","Polygon","Rectangle","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/98750f006daac942d40ee7fd345620e419693a6e6ba344549b85ee7a073fa8db.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/98750f006daac942d40ee7fd345620e419693a6e6ba344549b85ee7a073fa8db.json new file mode 100644 index 00000000..adeea5ad --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/98750f006daac942d40ee7fd345620e419693a6e6ba344549b85ee7a073fa8db.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n // 清空非响应式对象\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","clearAllZones","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/a0ed66d8ae6586e7b943a825270062fffe919be51e5d606f2ebd8a054acc8a36.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/a0ed66d8ae6586e7b943a825270062fffe919be51e5d606f2ebd8a054acc8a36.json new file mode 100644 index 00000000..c13aa847 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/a0ed66d8ae6586e7b943a825270062fffe919be51e5d606f2ebd8a054acc8a36.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: _ctx.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: _ctx.updateCircleRadius,\n onUpdateThreatDescription: _ctx.updateThreatDescription,\n onUpdateThreatTimeRange: _ctx.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","_ctx","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/a3f0821b520ed6908046746bffc43f4e6cd74774e3f5a8ede3fb89ba9b146f67.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/a3f0821b520ed6908046746bffc43f4e6cd74774e3f5a8ede3fb89ba9b146f67.json new file mode 100644 index 00000000..ec0fd6a1 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/a3f0821b520ed6908046746bffc43f4e6cd74774e3f5a8ede3fb89ba9b146f67.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"shared-map-container\"\n};\nconst _hoisted_2 = {\n id: \"sharedMap\",\n class: \"map-area\"\n};\nconst _hoisted_3 = {\n key: 0,\n class: \"map-loading\"\n};\nconst _hoisted_4 = {\n class: \"map-controls\"\n};\nconst _hoisted_5 = {\n class: \"control-item\"\n};\nconst _hoisted_6 = {\n class: \"control-item\"\n};\nconst _hoisted_7 = {\n class: \"control-item\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_text = _resolveComponent(\"el-text\");\n const _component_el_radio_button = _resolveComponent(\"el-radio-button\");\n const _component_el_radio_group = _resolveComponent(\"el-radio-group\");\n const _component_el_checkbox = _resolveComponent(\"el-checkbox\");\n const _component_el_checkbox_group = _resolveComponent(\"el-checkbox-group\");\n const _component_el_card = _resolveComponent(\"el-card\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 地图容器 \"), _createElementVNode(\"div\", _hoisted_2, [!$setup.mapLoaded ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [_createVNode(_component_el_text, null, {\n default: _withCtx(() => _cache[3] || (_cache[3] = [_createTextVNode(\"地图加载中...\")])),\n _: 1 /* STABLE */,\n __: [3]\n })])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 基本地图控制 \"), _createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_el_card, {\n class: \"map-control-card\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_cache[7] || (_cache[7] = _createElementVNode(\"h4\", null, \"地图图层\", -1 /* HOISTED */)), _createVNode(_component_el_radio_group, {\n modelValue: $setup.currentMapStyle,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.currentMapStyle = $event),\n onChange: $setup.changeMapStyle,\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_radio_button, {\n value: \"normal\"\n }, {\n default: _withCtx(() => _cache[4] || (_cache[4] = [_createTextVNode(\"标准地图\")])),\n _: 1 /* STABLE */,\n __: [4]\n }), _createVNode(_component_el_radio_button, {\n value: \"satellite\"\n }, {\n default: _withCtx(() => _cache[5] || (_cache[5] = [_createTextVNode(\"卫星地图\")])),\n _: 1 /* STABLE */,\n __: [5]\n }), _createVNode(_component_el_radio_button, {\n value: \"dark\"\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"暗色地图\")])),\n _: 1 /* STABLE */,\n __: [6]\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onChange\"])]), _createElementVNode(\"div\", _hoisted_6, [_cache[10] || (_cache[10] = _createElementVNode(\"h4\", null, \"显示模式\", -1 /* HOISTED */)), _createVNode(_component_el_radio_group, {\n modelValue: $setup.viewMode,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.viewMode = $event),\n onChange: $setup.changeViewMode,\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_radio_button, {\n value: \"2D\"\n }, {\n default: _withCtx(() => _cache[8] || (_cache[8] = [_createTextVNode(\"2D视图\")])),\n _: 1 /* STABLE */,\n __: [8]\n }), _createVNode(_component_el_radio_button, {\n value: \"3D\"\n }, {\n default: _withCtx(() => _cache[9] || (_cache[9] = [_createTextVNode(\"3D视图\")])),\n _: 1 /* STABLE */,\n __: [9]\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onChange\"])]), _createElementVNode(\"div\", _hoisted_7, [_cache[16] || (_cache[16] = _createElementVNode(\"h4\", null, \"图层叠加\", -1 /* HOISTED */)), _createVNode(_component_el_checkbox_group, {\n modelValue: $setup.overlayLayers,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.overlayLayers = $event),\n onChange: $setup.updateOverlayLayers\n }, {\n default: _withCtx(() => [_createVNode(_component_el_checkbox, {\n value: \"traffic\"\n }, {\n default: _withCtx(() => _cache[11] || (_cache[11] = [_createTextVNode(\"交通流量\")])),\n _: 1 /* STABLE */,\n __: [11]\n }), _createVNode(_component_el_checkbox, {\n value: \"buildings\"\n }, {\n default: _withCtx(() => _cache[12] || (_cache[12] = [_createTextVNode(\"3D建筑\")])),\n _: 1 /* STABLE */,\n __: [12]\n }), _createVNode(_component_el_checkbox, {\n value: \"terrain\"\n }, {\n default: _withCtx(() => _cache[13] || (_cache[13] = [_createTextVNode(\"地形等高线\")])),\n _: 1 /* STABLE */,\n __: [13]\n }), _createVNode(_component_el_checkbox, {\n value: \"weather\"\n }, {\n default: _withCtx(() => _cache[14] || (_cache[14] = [_createTextVNode(\"天气信息\")])),\n _: 1 /* STABLE */,\n __: [14]\n }), _createVNode(_component_el_checkbox, {\n value: \"threats\"\n }, {\n default: _withCtx(() => _cache[15] || (_cache[15] = [_createTextVNode(\"威胁区域\")])),\n _: 1 /* STABLE */,\n __: [15]\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onChange\"])])]),\n _: 1 /* STABLE */\n })])]);\n}","map":{"version":3,"names":["class","id","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","$setup","mapLoaded","_hoisted_3","_createVNode","_component_el_text","_cache","_hoisted_4","_component_el_card","size","_hoisted_5","_component_el_radio_group","currentMapStyle","$event","onChange","changeMapStyle","_component_el_radio_button","value","_hoisted_6","viewMode","changeViewMode","_hoisted_7","_component_el_checkbox_group","overlayLayers","updateOverlayLayers","_component_el_checkbox"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\components\\SharedMap.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/aba7692beb3c8f889cee5f314be4ce63edf4cbe201314c61c96c7fe08912bf8b.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/aba7692beb3c8f889cee5f314be4ce63edf4cbe201314c61c96c7fe08912bf8b.json new file mode 100644 index 00000000..fc130087 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/aba7692beb3c8f889cee5f314be4ce63edf4cbe201314c61c96c7fe08912bf8b.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n try {\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n if (!response.ok) {\n throw new Error('保存威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n const zone = result.data;\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n // 清空非响应式对象\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zoneData","getGeometryFromOverlay","response","fetch","method","headers","body","JSON","stringify","ok","Error","result","json","zone","data","getCenter","getRadius","path","getPath","bounds","getBounds","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","clearAllZones","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/ad94234a524a291636bec1c9279eefdb23ed777f70be6c2f07546f1aff2ff88c.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/ad94234a524a291636bec1c9279eefdb23ed777f70be6c2f07546f1aff2ff88c.json new file mode 100644 index 00000000..7e58d36e --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/ad94234a524a291636bec1c9279eefdb23ed777f70be6c2f07546f1aff2ff88c.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) return;\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","radius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","strokeColor","strokeWeight","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","setOptions","strokeOpacity","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/b0307bcca3a9236817e906b108ac0d13865b65a3892ae630f5648a5f0b8b83f7.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/b0307bcca3a9236817e906b108ac0d13865b65a3892ae630f5648a5f0b8b83f7.json new file mode 100644 index 00000000..68cf1145 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/b0307bcca3a9236817e906b108ac0d13865b65a3892ae630f5648a5f0b8b83f7.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays.value[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"AA0JA,SAASA,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,KAAI,QAAS,KAAI;AAC5D,SAASC,QAAO,QAAS,MAAK;AAC9B,SAASC,SAAS,EAAEC,YAAW,QAAS,cAAa;AACrD,OAAOC,SAAQ,MAAO,6BAA4B;AAClD,OAAOC,aAAY,MAAO,4CAA2C;AACrE,OAAOC,eAAc,MAAO,8CAA6C;AACzE,OAAOC,iBAAgB,MAAO,gDAA+C;AAE7E,eAAe;EACbC,IAAI,EAAE,gBAAgB;EACtBC,UAAU,EAAE;IACVL,SAAS;IACTC,aAAa;IACbC,eAAe;IACfC;EACF,CAAC;EACDG,KAAKA,CAAA,EAAG;IACN,MAAMC,KAAI,GAAIV,QAAQ,CAAC;IACvB,MAAMW,YAAW,GAAIhB,GAAG,CAAC,IAAI;;IAE7B;IACA,MAAMiB,WAAU,GAAIjB,GAAG,CAAC,UAAU;;IAElC;IACA,MAAMkB,WAAU,GAAIlB,GAAG,CAAC,IAAI;;IAE5B;IACA,MAAMmB,OAAM,GAAInB,GAAG,CAAC,KAAK;IACzB,MAAMoB,UAAS,GAAIpB,GAAG,CAAC,IAAI;IAC3B,MAAMqB,aAAY,GAAIrB,GAAG,CAAC,KAAK;;IAE/B;IACA,MAAMsB,YAAW,GAAItB,GAAG,CAAC,EAAE;IAC3B,MAAMuB,aAAY,GAAIvB,GAAG,CAAC,EAAE;;IAE5B;IACA,MAAMwB,WAAU,GAAIxB,GAAG,CAAC,EAAE;IAC1B;IACA,MAAMyB,YAAW,GAAI,CAAC;IACtB,MAAMC,QAAO,GAAI1B,GAAG,CAAC,IAAI;IACzB,MAAM2B,iBAAgB,GAAI3B,GAAG,CAAC,OAAO;IACrC,MAAM4B,WAAU,GAAI5B,GAAG,CAAC,QAAQ;IAChC,MAAM6B,YAAW,GAAI7B,GAAG,CAAC,IAAI;IAC7B,MAAM8B,iBAAgB,GAAI9B,GAAG,CAAC,EAAE;IAChC,MAAM+B,eAAc,GAAI/B,GAAG,CAAC,CAAC,IAAIgC,IAAI,CAAC,CAAC,EAAE,IAAIA,IAAI,CAACA,IAAI,CAACC,GAAG,CAAC,IAAI,EAAC,GAAI,EAAC,GAAI,EAAC,GAAI,IAAI,CAAC,CAAC;IACpF,MAAMC,cAAa,GAAIlC,GAAG,CAAC,IAAI;IAC/B,MAAMmC,aAAY,GAAInC,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC;IAC/E,MAAMoC,iBAAgB,GAAIpC,GAAG,CAAC,KAAK;IACnC,MAAMqC,QAAO,GAAIrC,GAAG,CAAC;MACnBsC,EAAE,EAAE,IAAI;MACRC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE,QAAQ;MACfC,WAAW,EAAE,EAAE;MACfC,QAAQ,EAAE;IACZ,CAAC;;IAED;IACA,MAAMC,MAAK,GAAIxC,QAAQ,CAAC,MAAMY,KAAK,CAAC6B,KAAK,CAACD,MAAK,IAAK,EAAE;IACtD,MAAME,eAAc,GAAI7C,GAAG,CAAC,IAAI;IAChC,MAAM8C,UAAS,GAAI9C,GAAG,CAAC,EAAE;IACzB,MAAM+C,WAAU,GAAI/C,GAAG,CAAC,EAAE;IAC1B,MAAMgD,QAAO,GAAIhD,GAAG,CAAC,IAAI;IACzB,MAAMiD,iBAAgB,GAAIjD,GAAG,CAAC,UAAU;IACxC,MAAMkD,cAAa,GAAIlD,GAAG,CAAC,GAAG;IAC9B,MAAMmD,WAAU,GAAInD,GAAG,CAAC,EAAE;IAC1B,MAAMoD,QAAO,GAAIpD,GAAG,CAAC,IAAI;;IAEzB;IACA,MAAMqD,SAAQ,GAAIrD,GAAG,CAAC,IAAI;IAC1B,MAAMsD,YAAW,GAAItD,GAAG,CAAC,CAAC,CAAC;;IAE3B;IACA,MAAMuD,gBAAe,GAAKC,GAAG,IAAK;MAChC,IAAI;QACF,OAAOC,IAAI,CAACC,QAAQ,CAACC,kBAAkB,CAACH,GAAG,CAAC,CAAC;MAC/C,EAAE,OAAOI,KAAK,EAAE;QACdC,OAAO,CAACC,IAAI,CAAC,aAAa,EAAEF,KAAK;QACjC,OAAOH,IAAI,CAACD,GAAG;MACjB;IACF;;IAEA;IACA,MAAMO,gBAAe,GAAI;MACvBC,KAAK,EAAE;QAAEpD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MACzCC,OAAO,EAAE;QAAEtD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MAC3CE,QAAQ,EAAE;QAAEvD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MAC5CG,MAAM,EAAE;QAAExD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MAC1CI,OAAO,EAAE;QAAEzD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU;IAC5C;;IAEA;IACA,MAAMK,iBAAgB,GAAI;MACxBC,GAAG,EAAE;QAAE3D,IAAI,EAAE,KAAK;QAAE4D,OAAO,EAAE;MAAI,CAAC;MAClCC,MAAM,EAAE;QAAE7D,IAAI,EAAE,KAAK;QAAE4D,OAAO,EAAE;MAAI,CAAC;MACrCE,IAAI,EAAE;QAAE9D,IAAI,EAAE,KAAK;QAAE4D,OAAO,EAAE;MAAI,CAAC;MACnCG,QAAQ,EAAE;QAAE/D,IAAI,EAAE,MAAM;QAAE4D,OAAO,EAAE;MAAI;IACzC;;IAEA;IACA,MAAMI,WAAU,GAAKC,GAAG,IAAK;MAC3B3D,WAAW,CAAC4D,KAAI,GAAID,GAAE;MACtBhB,OAAO,CAACkB,GAAG,CAAC,YAAY;;MAExB;MACA,MAAMC,IAAG,GAAIC,MAAM,CAACD,IAAG;MACvB,IAAIA,IAAI,EAAE;QACR,IAAI;UACF3B,SAAS,CAACyB,KAAI,GAAI,IAAIE,IAAI,CAACE,SAAS,CAACL,GAAG;UACxCxB,SAAS,CAACyB,KAAK,CAACK,EAAE,CAAC,MAAM,EAAEC,cAAc;UACzCvB,OAAO,CAACkB,GAAG,CAAC,gBAAgB;QAC9B,EAAE,OAAOnB,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,iBAAiB,EAAEA,KAAK;QACxC;MACF;;MAEA;MACAyB,uBAAuB,CAAC;;MAExB;MACAC,gBAAgB,CAAC;IACnB;;IAEA;IACA,MAAMD,uBAAsB,GAAIA,CAAA,KAAM;MACpC,QAAQpE,WAAW,CAAC6D,KAAK;QACvB,KAAK,UAAU;UACb;UACA;QACF,KAAK,YAAY;UACf;UACAS,eAAe,CAAC;UAChB;UACAC,iBAAiB,CAAC;UAClB;QACF,KAAK,cAAc;UACjB;UACA,IAAI7C,MAAM,CAACmC,KAAK,CAACW,MAAK,GAAI,KAAK,CAAC5C,eAAe,CAACiC,KAAK,EAAE;YACrDjC,eAAe,CAACiC,KAAI,GAAInC,MAAM,CAACmC,KAAK,CAAC,CAAC,CAAC,CAACxC,EAAC;UAC3C;UACA;MACJ;IACF;;IAEA;IACA,MAAMkD,iBAAgB,GAAIA,CAAA,KAAM;MAC9B,IAAI,CAACtE,WAAW,CAAC4D,KAAK,EAAE;MAExB,IAAI;QACF,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;;QAEvB;QACA,MAAMU,UAAS,GAAI,IAAIV,IAAI,CAACW,MAAM,CAAC;UACjCC,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;UAAE;UAChCC,MAAM,EAAE,IAAI;UACZC,WAAW,EAAE,SAAS;UACtBC,YAAY,EAAE,CAAC;UACfC,aAAa,EAAE,GAAG;UAClBC,SAAS,EAAE,SAAS;UACpBC,WAAW,EAAE;QACf,CAAC;QAEDhF,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACT,UAAU;;QAEhC;QACA,MAAMU,QAAO,GAAI;UACf9D,EAAE,EAAE,OAAM,GAAIN,IAAI,CAACC,GAAG,CAAC,CAAC;UACxBM,IAAI,EAAE,OAAO;UACbC,KAAK,EAAE,QAAQ;UACfC,WAAW,EAAE,OAAO;UACpB4D,SAAS,EAAE,CAAC,IAAIrE,IAAI,CAAC,CAAC,EAAE,IAAIA,IAAI,CAACA,IAAI,CAACC,GAAG,CAAC,IAAI,EAAC,GAAI,EAAC,GAAI,EAAC,GAAI,IAAI,CAAC,CAAC;UACnES,QAAQ,EAAE;YACRH,IAAI,EAAE,QAAQ;YACdqD,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;YAC9BC,MAAM,EAAE;UACV,CAAC;UACDS,OAAO,EAAEZ;QACX;QAEAlE,WAAW,CAACsD,KAAK,CAACyB,IAAI,CAACH,QAAQ;QAC/B3E,YAAY,CAACqD,KAAK,CAACsB,QAAQ,CAAC9D,EAAE,IAAIoD,UAAS;QAE3CA,UAAU,CAACP,EAAE,CAAC,OAAO,EAAE,MAAMqB,UAAU,CAACJ,QAAQ,CAAC9D,EAAE,CAAC;QAEpDuB,OAAO,CAACkB,GAAG,CAAC,WAAW,EAAEqB,QAAQ;QACjC9F,SAAS,CAACmG,OAAO,CAAC,gBAAgB;MAEpC,EAAE,OAAO7C,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,YAAY,EAAEA,KAAK;MACnC;IACF;;IAEA;IACA,MAAM8C,UAAS,GAAKC,CAAC,IAAK;MACxB,MAAM;QAAEC,GAAG;QAAEC;MAAI,IAAIF,CAAC,CAACG,MAAK;MAE5B,IAAI7F,WAAW,CAAC6D,KAAI,KAAM,UAAS,IAAK3D,OAAO,CAAC2D,KAAK,EAAE;QACrD;QACAiC,cAAc,CAACH,GAAG,EAAEC,GAAG;MACzB,OAAO,IAAI5F,WAAW,CAAC6D,KAAI,KAAM,cAAa,IAAK3D,OAAO,CAAC2D,KAAK,EAAE;QAChE;QACAkC,YAAY,CAACJ,GAAG,EAAEC,GAAG;MACvB;MACA;IACF;;IAEA;IACA,MAAMI,cAAa,GAAIA,CAAA,KAAM;MAC3B;MACA9F,OAAO,CAAC2D,KAAI,GAAI,KAAI;MACpBpD,QAAQ,CAACoD,KAAI,GAAI,IAAG;;MAEpB;MACA,IAAIzB,SAAS,CAACyB,KAAK,EAAE;QACnBzB,SAAS,CAACyB,KAAK,CAACoC,KAAK,CAAC,IAAI;MAC5B;;MAEA;MACA7B,uBAAuB,CAAC;IAC1B;;IAEA;;IAEA;IACA,MAAM8B,aAAY,GAAIA,CAAA,KAAM;MAC1BhG,OAAO,CAAC2D,KAAI,GAAI,CAAC3D,OAAO,CAAC2D,KAAI;MAC7B;MACA,IAAI7D,WAAW,CAAC6D,KAAI,KAAM,YAAY,EAAE;QACtCpD,QAAQ,CAACoD,KAAI,GAAI,IAAG;QACpB,IAAIzB,SAAS,CAACyB,KAAK,EAAE;UACnBzB,SAAS,CAACyB,KAAK,CAACoC,KAAK,CAAC,IAAI;QAC5B;MACF;IACF;;IAEA;IACA,MAAM5B,gBAAe,GAAI,MAAAA,CAAA,KAAY;MACnC,IAAI,CAACpE,WAAW,CAAC4D,KAAK,EAAE;MAExB,IAAI;QACF;QACA,MAAM/D,KAAK,CAACqG,QAAQ,CAAC,aAAa;QAElC,MAAMpC,IAAG,GAAIC,MAAM,CAACD,IAAG;QACvB,IAAI,CAACA,IAAG,IAAK,CAACrC,MAAM,CAACmC,KAAI,IAAKnC,MAAM,CAACmC,KAAK,CAACW,MAAK,KAAM,CAAC,EAAE;UACvD5B,OAAO,CAACkB,GAAG,CAAC,kBAAkB;UAC9B;QACF;;QAEA;QACAsC,MAAM,CAACC,MAAM,CAAChE,YAAY,CAACwB,KAAK,CAAC,CAACyC,OAAO,CAACC,MAAK,IAAK;UAClDtG,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACD,MAAM;QACjC,CAAC;QACDlE,YAAY,CAACwB,KAAI,GAAI,CAAC;QAEtBnC,MAAM,CAACmC,KAAK,CAACyC,OAAO,CAACG,KAAI,IAAK;UAC5B,IAAI,CAACA,KAAI,IAAK,OAAOA,KAAK,CAACC,SAAQ,KAAM,QAAO,IAAK,OAAOD,KAAK,CAACE,QAAO,KAAM,QAAQ,EAAE;YACvF/D,OAAO,CAACC,IAAI,CAAC,WAAW,EAAE4D,KAAK;YAC/B;UACF;UAEA,IAAI;YACF,MAAMF,MAAK,GAAI,IAAIxC,IAAI,CAAC6C,MAAM,CAAC;cAC7BC,QAAQ,EAAE,CAACJ,KAAK,CAACC,SAAS,EAAED,KAAK,CAACE,QAAQ,CAAC;cAC3CG,KAAK,EAAEL,KAAK,CAAC9G,IAAG,IAAK,OAAO8G,KAAK,CAACpF,EAAE,EAAE;cACtC0F,IAAI,EAAE,IAAIhD,IAAI,CAACiD,IAAI,CAAC;gBAClBC,IAAI,EAAE,IAAIlD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBAC3BC,KAAK,EAAEC,eAAe,CAACX,KAAK,CAACY,MAAM,CAAC;gBACpCC,SAAS,EAAE,IAAIvD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE;cACjC,CAAC;YACH,CAAC;;YAED;YACA,MAAMK,UAAS,GAAI,IAAIxD,IAAI,CAACyD,UAAU,CAAC;cACrCC,QAAQ,EAAE,IAAI;cACdC,OAAO,EAAE;;gEAEyCjB,KAAK,CAAC9G,IAAG,IAAK,OAAO8G,KAAK,CAACpF,EAAE,EAAE;+DAChCsG,aAAa,CAAClB,KAAK,CAACY,MAAM,CAAC;+DAC3BZ,KAAK,CAACmB,OAAM,IAAK,CAAC;+DAClBnB,KAAK,CAACC,SAAS,CAACmB,OAAO,CAAC,CAAC,CAAC,KAAKpB,KAAK,CAACE,QAAQ,CAACkB,OAAO,CAAC,CAAC,CAAC;;eAExG;cACDC,MAAM,EAAE,IAAI/D,IAAI,CAACgE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE;YAChC,CAAC;YAEDxB,MAAM,CAACrC,EAAE,CAAC,OAAO,EAAE,MAAM;cACvB,IAAI;gBACFqD,UAAU,CAACS,IAAI,CAAC/H,WAAW,CAAC4D,KAAK,EAAE0C,MAAM,CAAC0B,WAAW,CAAC,CAAC;cACzD,EAAE,OAAOC,SAAS,EAAE;gBAClBtF,OAAO,CAACC,IAAI,CAAC,WAAW,EAAEqF,SAAS;cACrC;YACF,CAAC;YAED7F,YAAY,CAACwB,KAAK,CAAC4C,KAAK,CAACpF,EAAE,IAAIkF,MAAK;YACpC,IAAIpG,UAAU,CAAC0D,KAAK,EAAE;cACpB5D,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACqB,MAAM;YAC9B;UACF,EAAE,OAAO4B,WAAW,EAAE;YACpBvF,OAAO,CAACC,IAAI,CAAC,OAAO4D,KAAK,CAACpF,EAAE,UAAU,EAAE8G,WAAW;UACrD;QACF,CAAC;MACH,EAAE,OAAOxF,KAAK,EAAE;QACdC,OAAO,CAACC,IAAI,CAAC,aAAa,EAAEF,KAAK;;QAEjC;QACA,MAAMyF,YAAW,GAAI,CACnB;UACE/G,EAAE,EAAE,CAAC;UACL1B,IAAI,EAAE,UAAU;UAChBgH,QAAQ,EAAE,OAAO;UACjBD,SAAS,EAAE,QAAQ;UACnBW,MAAM,EAAE,QAAQ;UAChBO,OAAO,EAAE;QACX,CAAC,EACD;UACEvG,EAAE,EAAE,CAAC;UACL1B,IAAI,EAAE,UAAU;UAChBgH,QAAQ,EAAE,OAAO;UACjBD,SAAS,EAAE,QAAQ;UACnBW,MAAM,EAAE,MAAM;UACdO,OAAO,EAAE;QACX,EACF;QAEA9H,KAAK,CAACuI,MAAM,CAAC,WAAW,EAAED,YAAY;MACxC;IACF;IAEA,MAAMhB,eAAc,GAAKC,MAAM,IAAK;MAClC,MAAMiB,MAAK,GAAI;QACbC,MAAM,EAAE,SAAS;QACjBC,IAAI,EAAE,SAAS;QACf7F,KAAK,EAAE;MACT;MACA,MAAMK,KAAI,GAAIsF,MAAM,CAACjB,MAAM,KAAKiB,MAAM,CAACE,IAAG;MAE1C,MAAMC,SAAQ,GAAI;;iDAEyBzF,KAAK;;;OAGhD;MAEA,OAAO,4BAA2B,GAAIV,gBAAgB,CAACmG,SAAS;IAClE;IAEA,MAAMd,aAAY,GAAKN,MAAM,IAAK;MAChC,MAAMqB,SAAQ,GAAI;QAChBH,MAAM,EAAE,KAAK;QACbC,IAAI,EAAE,IAAI;QACV7F,KAAK,EAAE;MACT;MACA,OAAO+F,SAAS,CAACrB,MAAM,KAAKA,MAAK;IACnC;;IAEA;IACA,MAAMsB,qBAAoB,GAAK9E,KAAK,IAAK;MACvC1D,UAAU,CAAC0D,KAAI,GAAIA,KAAI;MACvBuC,MAAM,CAACC,MAAM,CAAChE,YAAY,CAACwB,KAAK,CAAC,CAACyC,OAAO,CAACC,MAAK,IAAK;QAClD,IAAI1C,KAAK,EAAE;UACT5D,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACqB,MAAM;QAC9B,OAAO;UACLtG,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACD,MAAM;QACjC;MACF,CAAC;IACH;;IAEA;IACA,MAAMqC,eAAc,GAAK/E,KAAK,IAAK;MACjCzD,aAAa,CAACyD,KAAI,GAAIA,KAAI;MAC1B;IACF;;IAEA;IACA,MAAMgF,aAAY,GAAIA,CAAA,KAAM;MAC1B,IAAI7I,WAAW,CAAC6D,KAAI,KAAM,UAAU,EAAE;QACpC,OAAO,WAAU;MACnB,OAAO,IAAI7D,WAAW,CAAC6D,KAAI,KAAM,cAAc,EAAE;QAC/C,OAAO,WAAU;MACnB;MACA,OAAO,EAAC;IACV;;IAEA;;IAEA;IACA,MAAMiC,cAAa,GAAIA,CAACH,GAAG,EAAEC,GAAG,KAAK;MACnC,IAAI,CAAC3F,WAAW,CAAC4D,KAAK,EAAE;MAExB,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;;MAEvB;MACA,MAAMwC,MAAK,GAAI,IAAIxC,IAAI,CAAC6C,MAAM,CAAC;QAC7BC,QAAQ,EAAE,CAAClB,GAAG,EAAEC,GAAG,CAAC;QACpBmB,IAAI,EAAE,IAAIhD,IAAI,CAACiD,IAAI,CAAC;UAClBC,IAAI,EAAE,IAAIlD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;UAC3BC,KAAK,EAAE,4BAA2B,GAAI7E,gBAAgB,CAAC;;;;;WAKtD,CAAC;UACFgF,SAAS,EAAE,IAAIvD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE;QACjC,CAAC,CAAC;QACFJ,KAAK,EAAE,WAAWnB,GAAG,CAACkC,OAAO,CAAC,CAAC,CAAC,KAAKjC,GAAG,CAACiC,OAAO,CAAC,CAAC,CAAC;MACrD,CAAC;;MAED;MACAtB,MAAM,CAACrC,EAAE,CAAC,OAAO,EAAE,MAAM;QACvB7E,SAAS,CAAC;UACRyJ,OAAO,EAAE,UAAUnD,GAAG,CAACkC,OAAO,CAAC,CAAC,CAAC,KAAKjC,GAAG,CAACiC,OAAO,CAAC,CAAC,CAAC,EAAE;UACtDvG,IAAI,EAAE;QACR,CAAC;MACH,CAAC;MAEDrB,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACqB,MAAM;MAC5BjG,aAAa,CAACuD,KAAK,CAACyB,IAAI,CAACiB,MAAM;MAC/BlG,YAAY,CAACwD,KAAK,CAACyB,IAAI,CAAC;QAAEK,GAAG;QAAEC;MAAI,CAAC;MAEpCvG,SAAS,CAACmG,OAAO,CAAC,WAAWG,GAAG,CAACkC,OAAO,CAAC,CAAC,CAAC,KAAKjC,GAAG,CAACiC,OAAO,CAAC,CAAC,CAAC,EAAE;IAClE;;IAEA;IACA,MAAMkB,YAAW,GAAIA,CAAA,KAAM;MACzBzI,aAAa,CAACuD,KAAK,CAACyC,OAAO,CAACC,MAAK,IAAK;QACpCtG,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACD,MAAM;MACjC,CAAC;MACDjG,aAAa,CAACuD,KAAI,GAAI,EAAC;MACvBxD,YAAY,CAACwD,KAAI,GAAI,EAAC;MACtBxE,SAAS,CAACmG,OAAO,CAAC,UAAU;IAC9B;;IAEA;;IAEA;IACA,MAAMwD,UAAS,GAAIA,CAAA,KAAM;MACvB,IAAIvI,QAAQ,CAACoD,KAAI,KAAM,QAAQ,EAAE;QAC/B,OAAO,oBAAmB;MAC5B,OAAO,IAAIpD,QAAQ,CAACoD,KAAI,KAAM,SAAS,EAAE;QACvC,OAAO,kBAAiB;MAC1B,OAAO,IAAIpD,QAAQ,CAACoD,KAAI,KAAM,WAAW,EAAE;QACzC,OAAO,aAAY;MACrB;MACA,OAAO,EAAC;IACV;;IAEA;IACA,MAAMoF,sBAAqB,GAAK3H,IAAI,IAAK;MACvCZ,iBAAiB,CAACmD,KAAI,GAAIvC,IAAG;IAC/B;;IAEA;IACA,MAAM4H,uBAAsB,GAAK3H,KAAK,IAAK;MACzCZ,WAAW,CAACkD,KAAI,GAAItC,KAAI;IAC1B;;IAEA;IACA,MAAM4H,kBAAiB,GAAKvE,MAAM,IAAK;MACrChE,YAAY,CAACiD,KAAI,GAAIe,MAAK;IAC5B;;IAEA;IACA,MAAMwE,uBAAsB,GAAKC,IAAI,IAAK;MACxCxI,iBAAiB,CAACgD,KAAI,GAAIwF,IAAG;IAC/B;;IAEA;IACA,MAAMC,qBAAoB,GAAKC,KAAK,IAAK;MACvCzI,eAAe,CAAC+C,KAAI,GAAI0F,KAAI;IAC9B;;IAEA;IACA,MAAMC,WAAU,GAAKC,IAAI,IAAK;MAC5B,IAAI,CAACrH,SAAS,CAACyB,KAAK,EAAE;QACpBxE,SAAS,CAACsD,KAAK,CAAC,UAAU;QAC1B;MACF;MAEA,IAAIlC,QAAQ,CAACoD,KAAI,KAAM4F,IAAI,EAAE;QAC3B;QACAhJ,QAAQ,CAACoD,KAAI,GAAI,IAAG;QACpB,IAAI;UACFzB,SAAS,CAACyB,KAAK,CAACoC,KAAK,CAAC,IAAI;QAC5B,EAAE,OAAOtD,KAAK,EAAE;UACdC,OAAO,CAACC,IAAI,CAAC,YAAY,EAAEF,KAAK;QAClC;QACAtD,SAAS,CAACqK,IAAI,CAAC,SAAS;QACxB;MACF;MAEAjJ,QAAQ,CAACoD,KAAI,GAAI4F,IAAG;MACpBvJ,OAAO,CAAC2D,KAAI,GAAI,KAAI;;MAEpB;MACA,MAAM8F,OAAM,GAAI;QACd9E,WAAW,EAAE/B,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAACb,KAAK;QAC5D8B,YAAY,EAAE,CAAC;QACfC,aAAa,EAAE,GAAG;QAClBC,SAAS,EAAElC,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAACb,KAAK;QAC1DiC,WAAW,EAAE5B,iBAAiB,CAAC1C,WAAW,CAACkD,KAAK,CAAC,CAACN;MACpD;MAEA,IAAI;QACFX,OAAO,CAACkB,GAAG,CAAC,SAAS,EAAE2F,IAAI,EAAE,KAAK,EAAEE,OAAO;QAE3C,QAAQF,IAAI;UACV,KAAK,QAAQ;YACXrH,SAAS,CAACyB,KAAK,CAAC+F,MAAM,CAACD,OAAO;YAC9B;UACF,KAAK,SAAS;YACZvH,SAAS,CAACyB,KAAK,CAACgG,OAAO,CAACF,OAAO;YAC/B;UACF,KAAK,WAAW;YACdvH,SAAS,CAACyB,KAAK,CAACiG,SAAS,CAACH,OAAO;YACjC;QACJ;QAEAtK,SAAS,CAACqK,IAAI,CAACV,UAAU,CAAC,CAAC;MAC7B,EAAE,OAAOrG,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,WAAW,EAAEA,KAAK;QAChCtD,SAAS,CAACsD,KAAK,CAAC,UAAU;QAC1BlC,QAAQ,CAACoD,KAAI,GAAI,IAAG;MACtB;IACF;;IAEA;IACA,MAAMM,cAAa,GAAK4F,KAAK,IAAK;MAChC;MACA,MAAM1E,OAAM,GAAIlG,KAAK,CAAC4K,KAAK,CAACC,GAAG;MAE/BpH,OAAO,CAACkB,GAAG,CAAC,YAAY,EAAEuB,OAAO;MACjCzC,OAAO,CAACkB,GAAG,CAAC,QAAQ,EAAEuB,OAAO,CAAC4E,SAAQ,IAAK5E,OAAO,CAAC6E,UAAU;;MAE7D;MACA,IAAI;QACF;QACA,MAAMC,QAAO,GAAIlK,WAAW,CAAC4D,KAAK,CAACuG,cAAc,CAAC,SAAS;QAC3DxH,OAAO,CAACkB,GAAG,CAAC,aAAa,EAAEqG,QAAQ;;QAEnC;QACA,MAAME,YAAW,GAAI;UACnBxF,WAAW,EAAE/B,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAACb,KAAK;UAC5D8B,YAAY,EAAE,CAAC;UAAG;UAClBC,aAAa,EAAE,CAAC;UAAE;UAClBC,SAAS,EAAElC,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAACb,KAAK;UAC1DiC,WAAW,EAAE5B,iBAAiB,CAAC1C,WAAW,CAACkD,KAAK,CAAC,CAACN;QACpD;QAEAX,OAAO,CAACkB,GAAG,CAAC,SAAS,EAAEuG,YAAY;QACnChF,OAAO,CAACiF,UAAU,CAACD,YAAY;;QAE/B;QACAE,UAAU,CAAC,MAAM;UACftK,WAAW,CAAC4D,KAAK,CAAC2G,UAAU,CAAC;QAC/B,CAAC,EAAE,GAAG;QAEN5H,OAAO,CAACkB,GAAG,CAAC,WAAW;MAEzB,EAAE,OAAOnB,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,YAAY,EAAEA,KAAK;MACnC;;MAEA;MACA,MAAM8H,IAAG,GAAI;QACXpJ,EAAE,EAAEN,IAAI,CAACC,GAAG,CAAC,CAAC;QACdM,IAAI,EAAEZ,iBAAiB,CAACmD,KAAK;QAC7BtC,KAAK,EAAEZ,WAAW,CAACkD,KAAK;QACxBrC,WAAW,EAAEX,iBAAiB,CAACgD,KAAK;QACpCuB,SAAS,EAAE,CAAC,GAAGtE,eAAe,CAAC+C,KAAK,CAAC;QAAE;QACvCpC,QAAQ,EAAEiJ,sBAAsB,CAACrF,OAAO;MAC1C;;MAEA;MACA7E,YAAY,CAACqD,KAAK,CAAC4G,IAAI,CAACpJ,EAAE,IAAIgE,OAAM;;MAEpC;MACA9E,WAAW,CAACsD,KAAK,CAACyB,IAAI,CAACmF,IAAI;;MAE3B;MACA,IAAI;QACFpF,OAAO,CAACnB,EAAE,CAAC,OAAO,EAAE,MAAM;UACxBtB,OAAO,CAACkB,GAAG,CAAC,SAAS,EAAE2G,IAAI,CAACpJ,EAAE;UAC9BkE,UAAU,CAACkF,IAAI,CAACpJ,EAAE;QACpB,CAAC;MACH,EAAE,OAAOsB,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,WAAW,EAAEA,KAAK;MAClC;;MAEA;MACAlC,QAAQ,CAACoD,KAAI,GAAI,IAAG;MACpB,IAAIzB,SAAS,CAACyB,KAAK,EAAE;QACnBzB,SAAS,CAACyB,KAAK,CAACoC,KAAK,CAAC,IAAI;MAC5B;MAEA5G,SAAS,CAACmG,OAAO,CAAC,MAAM1C,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAAClE,IAAI,IAAI;;MAE1E;MACAiD,OAAO,CAACkB,GAAG,CAAC,QAAQ,EAAE2G,IAAI;MAC1B7H,OAAO,CAACkB,GAAG,CAAC,UAAU,EAAEvD,WAAW,CAACsD,KAAK,CAACW,MAAM;IAClD;IAEA,MAAMkG,sBAAqB,GAAKrF,OAAO,IAAK;MAC1C,IAAIA,OAAO,CAAC6E,UAAS,KAAM,aAAa,EAAE;QACxC,OAAO;UACL5I,IAAI,EAAE,QAAQ;UACdqD,MAAM,EAAEU,OAAO,CAACsF,SAAS,CAAC,CAAC;UAC3B/F,MAAM,EAAES,OAAO,CAACuF,SAAS,CAAC;QAC5B;MACF,OAAO,IAAIvF,OAAO,CAAC6E,UAAS,KAAM,cAAc,EAAE;QAChD,OAAO;UACL5I,IAAI,EAAE,SAAS;UACfuJ,IAAI,EAAExF,OAAO,CAACyF,OAAO,CAAC;QACxB;MACF,OAAO,IAAIzF,OAAO,CAAC6E,UAAS,KAAM,gBAAgB,EAAE;QAClD,OAAO;UACL5I,IAAI,EAAE,WAAW;UACjByJ,MAAM,EAAE1F,OAAO,CAAC2F,SAAS,CAAC;QAC5B;MACF;MACA,OAAO,IAAG;IACZ;;IAEA;IACA,MAAM1G,eAAc,GAAIA,CAAA,KAAM;MAC5B;MACA;IAAA,CACF;;IAEA;IACA,MAAMiB,UAAS,GAAKlE,EAAE,IAAK;MACzBJ,cAAc,CAAC4C,KAAI,GAAIxC,EAAC;MACxB,MAAMoJ,IAAG,GAAIlK,WAAW,CAACsD,KAAK,CAACoH,IAAI,CAACC,CAAA,IAAKA,CAAC,CAAC7J,EAAC,KAAMA,EAAE;MACpD,IAAIoJ,IAAG,IAAKA,IAAI,CAACpF,OAAO,EAAE;QACxB;QACAoF,IAAI,CAACpF,OAAO,CAACiF,UAAU,CAAC;UACtBxF,YAAY,EAAE,CAAC;UACfC,aAAa,EAAE;QACjB,CAAC;;QAED;QACAxE,WAAW,CAACsD,KAAK,CAACyC,OAAO,CAAC4E,CAAA,IAAK;UAC7B,IAAIA,CAAC,CAAC7J,EAAC,KAAMA,EAAC,IAAK6J,CAAC,CAAC7F,OAAO,EAAE;YAC5B6F,CAAC,CAAC7F,OAAO,CAACiF,UAAU,CAAC;cACnBxF,YAAY,EAAE,CAAC;cACfC,aAAa,EAAE;YACjB,CAAC;UACH;QACF,CAAC;MACH;IACF;;IAEA;IACA,MAAMoG,UAAS,GAAK9J,EAAE,IAAK;MACzB,MAAMgE,OAAM,GAAI7E,YAAY,CAACqD,KAAK,CAACxC,EAAE;MACrC,IAAIgE,OAAO,EAAE;QACXpF,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACnB,OAAO;QAChC,OAAO7E,YAAY,CAACqD,KAAK,CAACxC,EAAE;MAC9B;MAEAd,WAAW,CAACsD,KAAI,GAAItD,WAAW,CAACsD,KAAK,CAACuH,MAAM,CAACX,IAAG,IAAKA,IAAI,CAACpJ,EAAC,KAAMA,EAAE;MAEnE,IAAIJ,cAAc,CAAC4C,KAAI,KAAMxC,EAAE,EAAE;QAC/BJ,cAAc,CAAC4C,KAAI,GAAI,IAAG;MAC5B;MAEAxE,SAAS,CAACmG,OAAO,CAAC,QAAQ;IAC5B;;IAEA;IACA,MAAM6F,QAAO,GAAKZ,IAAI,IAAK;MACzBrJ,QAAQ,CAACyC,KAAI,GAAI;QAAE,GAAG4G;MAAK;MAC3BtJ,iBAAiB,CAAC0C,KAAI,GAAI,IAAG;IAC/B;;IAEA;IACA,MAAMyH,cAAa,GAAIA,CAAA,KAAM;MAC3B,MAAMb,IAAG,GAAIlK,WAAW,CAACsD,KAAK,CAACoH,IAAI,CAACC,CAAA,IAAKA,CAAC,CAAC7J,EAAC,KAAMD,QAAQ,CAACyC,KAAK,CAACxC,EAAE;MACnE,IAAIoJ,IAAI,EAAE;QACRA,IAAI,CAACnJ,IAAG,GAAIF,QAAQ,CAACyC,KAAK,CAACvC,IAAG;QAC9BmJ,IAAI,CAAClJ,KAAI,GAAIH,QAAQ,CAACyC,KAAK,CAACtC,KAAI;QAChCkJ,IAAI,CAACjJ,WAAU,GAAIJ,QAAQ,CAACyC,KAAK,CAACrC,WAAU;;QAE5C;QACA,IAAIiJ,IAAI,CAACpF,OAAO,EAAE;UAChBoF,IAAI,CAACpF,OAAO,CAACiF,UAAU,CAAC;YACtBzF,WAAW,EAAE/B,gBAAgB,CAAC2H,IAAI,CAACnJ,IAAI,CAAC,CAAC0B,KAAK;YAC9CgC,SAAS,EAAElC,gBAAgB,CAAC2H,IAAI,CAACnJ,IAAI,CAAC,CAAC0B,KAAK;YAC5CiC,WAAW,EAAE5B,iBAAiB,CAACoH,IAAI,CAAClJ,KAAK,CAAC,CAACgC;UAC7C,CAAC;QACH;QAEAlE,SAAS,CAACmG,OAAO,CAAC,QAAQ;MAC5B;MACArE,iBAAiB,CAAC0C,KAAI,GAAI,KAAI;IAChC;;IAEA;IACA,MAAM0H,aAAY,GAAIA,CAAA,KAAM;MAC1BnF,MAAM,CAACC,MAAM,CAAC7F,YAAY,CAACqD,KAAK,CAAC,CAACyC,OAAO,CAACjB,OAAM,IAAK;QACnDpF,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACnB,OAAO;MAClC,CAAC;MAED9E,WAAW,CAACsD,KAAI,GAAI,EAAC;MACrBrD,YAAY,CAACqD,KAAI,GAAI,CAAC;MACtB5C,cAAc,CAAC4C,KAAI,GAAI,IAAG;MAE1BxE,SAAS,CAACmG,OAAO,CAAC,UAAU;IAC9B;;IAEA;IACA,MAAMgG,qBAAoB,GAAKC,MAAM,IAAK;MACxCvK,aAAa,CAAC2C,KAAI,GAAI4H,MAAK;;MAE3B;MACAlL,WAAW,CAACsD,KAAK,CAACyC,OAAO,CAACmE,IAAG,IAAK;QAChC,IAAIA,IAAI,CAACpF,OAAO,EAAE;UAChB,IAAIoG,MAAM,CAACC,QAAQ,CAACjB,IAAI,CAACnJ,IAAI,CAAC,EAAE;YAC9BrB,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACuF,IAAI,CAACpF,OAAO;UACpC,OAAO;YACLpF,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACiE,IAAI,CAACpF,OAAO;UACvC;QACF;MACF,CAAC;IACH;;IAEA;IACA,MAAMsG,UAAS,GAAIA,CAAA,KAAM;MACvB,IAAIpL,WAAW,CAACsD,KAAK,CAACW,MAAK,KAAM,CAAC,EAAE;MAEpC,MAAMuG,MAAK,GAAI,IAAK/G,MAAM,CAACD,IAAI,CAAC6H,MAAM,CAAE;MACxCrL,WAAW,CAACsD,KAAK,CAACyC,OAAO,CAACmE,IAAG,IAAK;QAChC,IAAIA,IAAI,CAACpF,OAAM,IAAKoF,IAAI,CAACpF,OAAO,CAAC2F,SAAS,EAAE;UAC1CD,MAAM,CAACc,MAAM,CAACpB,IAAI,CAACpF,OAAO,CAAC2F,SAAS,CAAC,CAAC;QACxC,OAAO,IAAIP,IAAI,CAAChJ,QAAQ,EAAEkD,MAAM,EAAE;UAChCoG,MAAM,CAACc,MAAM,CAACpB,IAAI,CAAChJ,QAAQ,CAACkD,MAAM;QACpC;MACF,CAAC;MAED1E,WAAW,CAAC4D,KAAK,CAACiI,SAAS,CAACf,MAAM;IACpC;;IAEA;;IAEA;IACA,MAAMhF,YAAW,GAAIA,CAACJ,GAAG,EAAEC,GAAG,KAAK;MACjC,IAAI,CAAC1F,OAAO,CAAC2D,KAAI,IAAK,CAAC5D,WAAW,CAAC4D,KAAK,EAAE;MAE1C,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;MACvB,MAAMgI,UAAS,GAAIlK,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI;;MAE7C;MACA3C,UAAU,CAACgC,KAAK,CAACyB,IAAI,CAAC;QAAEK,GAAG;QAAEC;MAAI,CAAC;;MAElC;MACA,MAAMW,MAAK,GAAI,IAAIxC,IAAI,CAAC6C,MAAM,CAAC;QAC7BC,QAAQ,EAAE,CAAClB,GAAG,EAAEC,GAAG,CAAC;QACpBmB,IAAI,EAAE,IAAIhD,IAAI,CAACiD,IAAI,CAAC;UAClBC,IAAI,EAAE,IAAIlD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;UAC3BC,KAAK,EAAE,4BAA2B,GAAI7E,gBAAgB,CAAC;;;wGAGuCyJ,UAAU;;WAEvG,CAAC;UACFzE,SAAS,EAAE,IAAIvD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE;QACjC,CAAC,CAAC;QACFJ,KAAK,EAAE,MAAMiF,UAAU;MACzB,CAAC;MAED9L,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACqB,MAAM;MAC5BzE,WAAW,CAAC+B,KAAK,CAACyB,IAAI,CAACiB,MAAM;;MAE7B;MACA,IAAI1E,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC,EAAE;QAC/BwH,cAAc,CAAC;MACjB;MAEA3M,SAAS,CAACmG,OAAO,CAAC,SAASuG,UAAU,EAAE;IACzC;IAEA,MAAMC,cAAa,GAAIA,CAAA,KAAM;MAC3B,IAAI,CAAC/L,WAAW,CAAC4D,KAAK,EAAE;MAExB,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;MAEvB,IAAIhC,QAAQ,CAAC8B,KAAK,EAAE;QAClB5D,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACzE,QAAQ,CAAC8B,KAAK;MACzC;MAEA,MAAMgH,IAAG,GAAIhJ,UAAU,CAACgC,KAAK,CAACD,GAAG,CAACqI,CAAA,IAAK,CAACA,CAAC,CAACtG,GAAG,EAAEsG,CAAC,CAACrG,GAAG,CAAC;MAErD7D,QAAQ,CAAC8B,KAAI,GAAI,IAAIE,IAAI,CAACmI,QAAQ,CAAC;QACjCrB,IAAI,EAAEA,IAAI;QACVhG,WAAW,EAAE,SAAS;QACtBC,YAAY,EAAE,CAAC;QACfqH,WAAW,EAAE;MACf,CAAC;MAEDlM,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACnD,QAAQ,CAAC8B,KAAK;IACtC;;IAEA;IACA,MAAMuI,WAAU,GAAKC,KAAK,IAAK;MAC7BxK,UAAU,CAACgC,KAAK,CAACyI,MAAM,CAACD,KAAK,EAAE,CAAC;;MAEhC;MACAE,gBAAgB,CAAC;MACjB1K,UAAU,CAACgC,KAAK,CAACyC,OAAO,CAAC,CAACkG,KAAK,EAAEC,CAAC,KAAK;QACrCC,kBAAkB,CAACF,KAAK,CAAC7G,GAAG,EAAE6G,KAAK,CAAC5G,GAAG,EAAE6G,CAAA,GAAI,CAAC;MAChD,CAAC;MAED,IAAI5K,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC,EAAE;QAC/BwH,cAAc,CAAC;MACjB,OAAO,IAAIjK,QAAQ,CAAC8B,KAAK,EAAE;QACzB5D,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACzE,QAAQ,CAAC8B,KAAK;QACvC9B,QAAQ,CAAC8B,KAAI,GAAI,IAAG;MACtB;;MAEA;MACA1B,QAAQ,CAAC0B,KAAI,GAAI,IAAG;IACtB;IAEA,MAAM6I,kBAAiB,GAAIA,CAAC/G,GAAG,EAAEC,GAAG,EAAEyG,KAAK,KAAK;MAC9C,MAAMtI,IAAG,GAAIC,MAAM,CAACD,IAAG;MAEvB,MAAMwC,MAAK,GAAI,IAAIxC,IAAI,CAAC6C,MAAM,CAAC;QAC7BC,QAAQ,EAAE,CAAClB,GAAG,EAAEC,GAAG,CAAC;QACpBmB,IAAI,EAAE,IAAIhD,IAAI,CAACiD,IAAI,CAAC;UAClBC,IAAI,EAAE,IAAIlD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;UAC3BC,KAAK,EAAE,4BAA2B,GAAI7E,gBAAgB,CAAC;;;wGAGuC+J,KAAK;;WAElG,CAAC;UACF/E,SAAS,EAAE,IAAIvD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE;QACjC,CAAC,CAAC;QACFJ,KAAK,EAAE,MAAMuF,KAAK;MACpB,CAAC;MAEDpM,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACqB,MAAM;MAC5BzE,WAAW,CAAC+B,KAAK,CAACyB,IAAI,CAACiB,MAAM;IAC/B;IAEA,MAAMgG,gBAAe,GAAIA,CAAA,KAAM;MAC7BzK,WAAW,CAAC+B,KAAK,CAACyC,OAAO,CAACC,MAAK,IAAK;QAClCtG,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACD,MAAM;MACjC,CAAC;MACDzE,WAAW,CAAC+B,KAAI,GAAI,EAAC;IACvB;;IAEA;IACA,MAAM8I,QAAO,GAAI,MAAAA,CAAA,KAAY;MAC3B,IAAI9K,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC,EAAE;QAC/BnF,SAAS,CAACuN,OAAO,CAAC,WAAW;QAC7B;MACF;MAEA,IAAI;QACF;QACA,MAAMC,QAAO,GAAIC,iBAAiB,CAAC;QACnC,MAAMC,QAAO,GAAIC,IAAI,CAACC,IAAI,CAACJ,QAAO,IAAK3K,WAAW,CAAC2B,KAAI,GAAI,IAAG,GAAI,EAAE,CAAC,GAAE;;QAEvE1B,QAAQ,CAAC0B,KAAI,GAAI;UACfgJ,QAAQ,EAAEG,IAAI,CAACE,KAAK,CAACL,QAAQ,CAAC;UAC9BE,QAAQ,EAAEA,QAAQ;UAClBI,UAAU,EAAEtL,UAAU,CAACgC,KAAK,CAACW;QAC/B;QAEAnF,SAAS,CAACmG,OAAO,CAAC,QAAQ;MAC5B,EAAE,OAAO7C,KAAK,EAAE;QACdtD,SAAS,CAACsD,KAAK,CAAC,QAAQ;MAC1B;IACF;IAEA,MAAMmK,iBAAgB,GAAIA,CAAA,KAAM;MAC9B,IAAIM,aAAY,GAAI;MACpB,KAAK,IAAIX,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAI5K,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC,EAAEiI,CAAC,EAAE,EAAE;QACpD,MAAMY,EAAC,GAAIxL,UAAU,CAACgC,KAAK,CAAC4I,CAAC;QAC7B,MAAMa,EAAC,GAAIzL,UAAU,CAACgC,KAAK,CAAC4I,CAAA,GAAI,CAAC;QACjCW,aAAY,IAAKG,WAAW,CAACF,EAAE,CAACzH,GAAG,EAAEyH,EAAE,CAAC1H,GAAG,EAAE2H,EAAE,CAAC1H,GAAG,EAAE0H,EAAE,CAAC3H,GAAG;MAC7D;MACA,OAAOyH,aAAY;IACrB;IAEA,MAAMG,WAAU,GAAIA,CAACC,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,IAAI,KAAK;MAC9C,MAAMC,CAAA,GAAI,MAAK;MACf,MAAMC,EAAC,GAAIL,IAAG,GAAIR,IAAI,CAACc,EAAE,GAAC,GAAE;MAC5B,MAAMC,EAAC,GAAIL,IAAG,GAAIV,IAAI,CAACc,EAAE,GAAC,GAAE;MAC5B,MAAME,EAAC,GAAI,CAACN,IAAI,GAACF,IAAI,IAAIR,IAAI,CAACc,EAAE,GAAC,GAAE;MACnC,MAAMG,EAAC,GAAI,CAACN,IAAI,GAACF,IAAI,IAAIT,IAAI,CAACc,EAAE,GAAC,GAAE;MAEnC,MAAMI,CAAA,GAAIlB,IAAI,CAACmB,GAAG,CAACH,EAAE,GAAC,CAAC,IAAIhB,IAAI,CAACmB,GAAG,CAACH,EAAE,GAAC,CAAC,IAC9BhB,IAAI,CAACoB,GAAG,CAACP,EAAE,IAAIb,IAAI,CAACoB,GAAG,CAACL,EAAE,IAC1Bf,IAAI,CAACmB,GAAG,CAACF,EAAE,GAAC,CAAC,IAAIjB,IAAI,CAACmB,GAAG,CAACF,EAAE,GAAC,CAAC;MACxC,MAAMI,CAAA,GAAI,IAAIrB,IAAI,CAACsB,KAAK,CAACtB,IAAI,CAACuB,IAAI,CAACL,CAAC,CAAC,EAAElB,IAAI,CAACuB,IAAI,CAAC,CAAC,GAACL,CAAC,CAAC;MAErD,OAAON,CAAA,GAAIS,CAAA;IACb;;IAEA;IACA,MAAMG,WAAU,GAAI,MAAAA,CAAA,KAAY;MAC9B,IAAI,CAAC5M,eAAe,CAACiC,KAAK,EAAE;QAC1BxE,SAAS,CAACuN,OAAO,CAAC,aAAa;QAC/B;MACF;MAEA,IAAI;QACF,MAAMtN,YAAY,CAACmP,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE;UAC/CC,iBAAiB,EAAE,IAAI;UACvBC,gBAAgB,EAAE,IAAI;UACtBrN,IAAI,EAAE;QACR,CAAC;QAEDjC,SAAS,CAACmG,OAAO,CAAC,UAAU;QAC5B;MACF,EAAE,MAAM;QACNnG,SAAS,CAACqK,IAAI,CAAC,OAAO;MACxB;IACF;;IAEA;IACA,MAAMkF,QAAO,GAAIA,CAAA,KAAM;MACrBrC,gBAAgB,CAAC;MAEjB,IAAIxK,QAAQ,CAAC8B,KAAK,EAAE;QAClB5D,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACzE,QAAQ,CAAC8B,KAAK;QACvC9B,QAAQ,CAAC8B,KAAI,GAAI,IAAG;MACtB;MAEAhC,UAAU,CAACgC,KAAI,GAAI,EAAC;MACpB1B,QAAQ,CAAC0B,KAAI,GAAI,IAAG;MAEpBxE,SAAS,CAACmG,OAAO,CAAC,UAAU;IAC9B;;IAEA;IACA,MAAMqJ,WAAU,GAAKxN,EAAE,IAAK;MAC1BO,eAAe,CAACiC,KAAI,GAAIxC,EAAC;MACzB,MAAMoF,KAAI,GAAI/E,MAAM,CAACmC,KAAK,CAACoH,IAAI,CAAC6D,CAAA,IAAKA,CAAC,CAACzN,EAAC,KAAMA,EAAE;MAChD,IAAIoF,KAAK,EAAE;QACTpH,SAAS,CAACmG,OAAO,CAAC,WAAWiB,KAAK,CAAC9G,IAAI,EAAE;MAC3C;IACF;;IAEA;IACA,MAAMoP,uBAAsB,GAAKC,SAAS,IAAK;MAC7ChN,iBAAiB,CAAC6B,KAAI,GAAImL,SAAQ;IACpC;;IAEA;IACA,MAAMC,oBAAmB,GAAKC,QAAQ,IAAK;MACzCjN,cAAc,CAAC4B,KAAI,GAAIqL,QAAO;IAChC;;IAEA;IACA,MAAMC,iBAAgB,GAAKC,KAAK,IAAK;MACnClN,WAAW,CAAC2B,KAAI,GAAIuL,KAAI;IAC1B;;IAEA;IACA,MAAMC,aAAY,GAAIA,CAAA,KAAM;MAC1B,IAAIxN,UAAU,CAACgC,KAAK,CAACW,MAAK,KAAM,CAAC,EAAE;MAEnC,MAAM8K,UAAS,GAAIzN,UAAU,CAACgC,KAAK,CAAC,CAAC;MACrC5D,WAAW,CAAC4D,KAAK,CAAC0L,SAAS,CAAC,CAACD,UAAU,CAAC3J,GAAG,EAAE2J,UAAU,CAAC1J,GAAG,CAAC;MAC5D3F,WAAW,CAAC4D,KAAK,CAAC2L,OAAO,CAAC,EAAE;IAC9B;;IAEA;IACA,MAAMC,WAAU,GAAIA,CAAA,KAAM;MACxB,IAAI5N,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC,EAAE;MAEjC,MAAMkL,QAAO,GAAI7N,UAAU,CAACgC,KAAK,CAAChC,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC;MAC7DvE,WAAW,CAAC4D,KAAK,CAAC0L,SAAS,CAAC,CAACG,QAAQ,CAAC/J,GAAG,EAAE+J,QAAQ,CAAC9J,GAAG,CAAC;MACxD3F,WAAW,CAAC4D,KAAK,CAAC2L,OAAO,CAAC,EAAE;IAC9B;;IAEA;IACA,MAAMG,SAAQ,GAAIA,CAAA,KAAM;MACtB,IAAI9N,UAAU,CAACgC,KAAK,CAACW,MAAK,KAAM,CAAC,EAAE;MAEnC,MAAMuG,MAAK,GAAI,IAAK/G,MAAM,CAACD,IAAI,CAAC6H,MAAM,CAAE;MACxC/J,UAAU,CAACgC,KAAK,CAACyC,OAAO,CAACkG,KAAI,IAAK;QAChCzB,MAAM,CAACc,MAAM,CAAC,CAACW,KAAK,CAAC7G,GAAG,EAAE6G,KAAK,CAAC5G,GAAG,CAAC;MACtC,CAAC;MAED3F,WAAW,CAAC4D,KAAK,CAACiI,SAAS,CAACf,MAAM;IACpC;IAEA/L,SAAS,CAAC,MAAM;MACd;IAAA,CACD;IAED,OAAO;MACLe,YAAY;MACZC,WAAW;MACXE,OAAO;MACPG,YAAY;MACZF,UAAU;MACVC,aAAa;MACbG,WAAW;MACXU,cAAc;MACdP,iBAAiB;MACjBD,QAAQ;MACRE,WAAW;MACXC,YAAY;MACZC,iBAAiB;MACjBC,eAAe;MACfI,aAAa;MACbC,iBAAiB;MACjBC,QAAQ;MACRM,MAAM;MACNE,eAAe;MACfC,UAAU;MACVG,iBAAiB;MACjBC,cAAc;MACdC,WAAW;MACXC,QAAQ;MAER6D,cAAc;MACdrC,WAAW;MACX8B,UAAU;MACVS,aAAa;MACb6C,YAAY;MACZJ,qBAAqB;MACrBC,eAAe;MACfC,aAAa;MACbG,UAAU;MACVC,sBAAsB;MACtBC,uBAAuB;MACvBC,kBAAkB;MAClBC,uBAAuB;MACvBE,qBAAqB;MACrBE,WAAW;MACXjE,UAAU;MACV4F,UAAU;MACVE,QAAQ;MACRC,cAAc;MACdC,aAAa;MACbC,qBAAqB;MACrBG,UAAU;MACVS,WAAW;MACXO,QAAQ;MACR6B,WAAW;MACXI,QAAQ;MACRC,WAAW;MACXE,uBAAuB;MACvBE,oBAAoB;MACpBE,iBAAiB;MACjBE,aAAa;MACbI,WAAW;MACXE,SAAS;MAET;MACAC,iBAAiB,EAAGtO,IAAI,IAAKwB,gBAAgB,CAACxB,IAAI,CAAC,EAAE3B,IAAG,IAAK,MAAM;MACnEkQ,kBAAkB,EAAGtO,KAAK,IAAK8B,iBAAiB,CAAC9B,KAAK,CAAC,EAAE5B,IAAG,IAAK;IACnE;EACF;AACF","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/b44b45a8f25570c8a5e0c4b89405b65e497ce8895cc3ce3c6a984f7a2b3df1fd.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/b44b45a8f25570c8a5e0c4b89405b65e497ce8895cc3ce3c6a984f7a2b3df1fd.json new file mode 100644 index 00000000..e086417d --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/b44b45a8f25570c8a5e0c4b89405b65e497ce8895cc3ce3c6a984f7a2b3df1fd.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: _ctx.updatePlanningAlgorithm,\n onUpdateFlightAltitude: _ctx.updateFlightAltitude,\n onUpdateFlightSpeed: _ctx.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","_ctx","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/ba7ec567c736514a64aa6ba9e1ba72e01577a02507e5ced8f2c90cde6272b86f.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/ba7ec567c736514a64aa6ba9e1ba72e01577a02507e5ced8f2c90cde6272b86f.json new file mode 100644 index 00000000..f5ad3903 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/ba7ec567c736514a64aa6ba9e1ba72e01577a02507e5ced8f2c90cde6272b86f.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/bce8d2b387ad42254fcf2f3ee602c798736fee0c5198335f0b7a72b0e9c9e030.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/bce8d2b387ad42254fcf2f3ee602c798736fee0c5198335f0b7a72b0e9c9e030.json new file mode 100644 index 00000000..9508d3b3 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/bce8d2b387ad42254fcf2f3ee602c798736fee0c5198335f0b7a72b0e9c9e030.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n // 清空非响应式对象\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","clearAllZones","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/bebac8293a3b8a9a9a889e80e839ad8a7185ff51ac0577c5bfc04251c83afb61.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/bebac8293a3b8a9a9a889e80e839ad8a7185ff51ac0577c5bfc04251c83afb61.json new file mode 100644 index 00000000..13db775a --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/bebac8293a3b8a9a9a889e80e839ad8a7185ff51ac0577c5bfc04251c83afb61.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n try {\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n if (!response.ok) {\n throw new Error('保存威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n const zone = result.data;\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n const response = await fetch('/api/threat-zones');\n if (!response.ok) {\n throw new Error('获取威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n let overlay = null;\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n overlay = new AMap.Circle({\n center: zone.geometry.center,\n radius: zone.geometry.radius,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'polygon') {\n overlay = new AMap.Polygon({\n path: zone.geometry.path,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'rectangle') {\n overlay = new AMap.Rectangle({\n bounds: zone.geometry.bounds,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n }\n if (overlay) {\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n\n // 添加点击事件\n overlay.on('click', () => {\n selectZone(zone.id);\n });\n console.log(`威胁区 ${zone.id} 已渲染到地图`);\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = async () => {\n try {\n console.log('开始更新威胁区:', editForm.value.id);\n const response = await fetch(`/api/threat-zones/${editForm.value.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n type: editForm.value.type,\n level: editForm.value.level,\n description: editForm.value.description\n })\n });\n if (!response.ok) {\n throw new Error('更新威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 更新本地数据\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n }\n ElMessage.success('威胁区已更新');\n console.log('威胁区更新成功:', result.data);\n } else {\n throw new Error(result.message || '更新威胁区失败');\n }\n } catch (error) {\n console.error('更新威胁区失败:', error);\n ElMessage.error('更新威胁区失败: ' + error.message);\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = async (skipConfirm = false) => {\n try {\n if (!skipConfirm && threatZones.value.length > 0) {\n // 批量删除所有威胁区\n const zoneIds = threatZones.value.map(zone => zone.id);\n console.log('开始批量删除威胁区:', zoneIds);\n const response = await fetch('/api/threat-zones', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n ids: zoneIds\n })\n });\n if (!response.ok) {\n throw new Error('批量删除威胁区失败');\n }\n const result = await response.json();\n if (!result.success) {\n throw new Error(result.message || '批量删除威胁区失败');\n }\n console.log('威胁区批量删除成功:', result.data);\n }\n\n // 从地图移除所有覆盖物\n Object.values(zoneOverlays).forEach(overlay => {\n if (mapInstance.value) {\n mapInstance.value.remove(overlay);\n }\n });\n\n // 清空数据\n threatZones.value = [];\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n if (!skipConfirm) {\n ElMessage.success('已清除所有威胁区');\n }\n } catch (error) {\n console.error('清除威胁区失败:', error);\n if (!skipConfirm) {\n ElMessage.error('清除威胁区失败: ' + error.message);\n }\n }\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","addTestThreatZone","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zoneData","getGeometryFromOverlay","response","fetch","method","headers","body","JSON","stringify","ok","Error","result","json","zone","data","getCenter","getRadius","path","getPath","bounds","getBounds","clearAllZones","renderThreatZoneOnMap","Polygon","Rectangle","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","skipConfirm","zoneIds","ids","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/c344e3c374778c69346318605d98d4f35de5112f4997d41871218455d4b99369.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/c344e3c374778c69346318605d98d4f35de5112f4997d41871218455d4b99369.json new file mode 100644 index 00000000..1b3fcd85 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/c344e3c374778c69346318605d98d4f35de5112f4997d41871218455d4b99369.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n overlay.setOptions(styleOptions);\n\n // 确保覆盖物被添加到地图\n if (!mapInstance.value.has(overlay)) {\n mapInstance.value.add(overlay);\n }\n console.log('威胁区绘制完成:', overlay);\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","radius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","styleOptions","setOptions","has","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/c70389b97f8841910b6585a959cf09a83e5c39a2290e16e941ee9e59f7e63fbe.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/c70389b97f8841910b6585a959cf09a83e5c39a2290e16e941ee9e59f7e63fbe.json new file mode 100644 index 00000000..c7c40cdd --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/c70389b97f8841910b6585a959cf09a83e5c39a2290e16e941ee9e59f7e63fbe.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n overlay.setOptions(styleOptions);\n\n // 确保覆盖物被添加到地图\n // MouseTool绘制的覆盖物通常已经自动添加到地图,但我们确保一下\n try {\n mapInstance.value.add(overlay);\n } catch (error) {\n // 如果已经存在则忽略错误\n console.log('覆盖物可能已存在于地图中');\n }\n console.log('威胁区绘制完成:', overlay);\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","styleOptions","setOptions","zone","getGeometryFromOverlay","CLASS_NAME","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/caa05b64597219a83c32bc76b91341a141d13d2aca97eae8dfe4eef64ab11e54.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/caa05b64597219a83c32bc76b91341a141d13d2aca97eae8dfe4eef64ab11e54.json new file mode 100644 index 00000000..5d6ad3fc --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/caa05b64597219a83c32bc76b91341a141d13d2aca97eae8dfe4eef64ab11e54.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/cb4f9889d90455ef12db9c8653d911c4f6e748d3f9c31718d6bec7e1c9b60907.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/cb4f9889d90455ef12db9c8653d911c4f6e748d3f9c31718d6bec7e1c9b60907.json new file mode 100644 index 00000000..824f046d --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/cb4f9889d90455ef12db9c8653d911c4f6e748d3f9c31718d6bec7e1c9b60907.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/cd8c0874c3b69ce9d8c1cc734778da62366f492babd3d27c404f2ca27d8298cd.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/cd8c0874c3b69ce9d8c1cc734778da62366f492babd3d27c404f2ca27d8298cd.json new file mode 100644 index 00000000..78c29b66 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/cd8c0874c3b69ce9d8c1cc734778da62366f492babd3d27c404f2ca27d8298cd.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d1593646eb38e026826bab98442a63823bf1ad7e90b3a593c719003dfc9c6a8e.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d1593646eb38e026826bab98442a63823bf1ad7e90b3a593c719003dfc9c6a8e.json new file mode 100644 index 00000000..9d10b684 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d1593646eb38e026826bab98442a63823bf1ad7e90b3a593c719003dfc9c6a8e.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d2709bdaa3d1607d48caec13279ef6a47b160b06aa661204d880b6f6d4737378.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d2709bdaa3d1607d48caec13279ef6a47b160b06aa661204d880b6f6d4737378.json new file mode 100644 index 00000000..14acc0b4 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d2709bdaa3d1607d48caec13279ef6a47b160b06aa661204d880b6f6d4737378.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: _ctx.updatePlanningAlgorithm,\n onUpdateFlightAltitude: _ctx.updateFlightAltitude,\n onUpdateFlightSpeed: _ctx.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","_ctx","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d46a05966d9dd4350cccefd95ffbf7323f11a2391e1dd74905badd617885976b.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d46a05966d9dd4350cccefd95ffbf7323f11a2391e1dd74905badd617885976b.json new file mode 100644 index 00000000..a27bf2b3 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d46a05966d9dd4350cccefd95ffbf7323f11a2391e1dd74905badd617885976b.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n // 清空非响应式对象\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","clearAllZones","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"AA0JA,SAASA,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,KAAI,QAAS,KAAI;AAC5D,SAASC,QAAO,QAAS,MAAK;AAC9B,SAASC,SAAS,EAAEC,YAAW,QAAS,cAAa;AACrD,OAAOC,SAAQ,MAAO,6BAA4B;AAClD,OAAOC,aAAY,MAAO,4CAA2C;AACrE,OAAOC,eAAc,MAAO,8CAA6C;AACzE,OAAOC,iBAAgB,MAAO,gDAA+C;AAE7E,eAAe;EACbC,IAAI,EAAE,gBAAgB;EACtBC,UAAU,EAAE;IACVL,SAAS;IACTC,aAAa;IACbC,eAAe;IACfC;EACF,CAAC;EACDG,KAAKA,CAAA,EAAG;IACN,MAAMC,KAAI,GAAIV,QAAQ,CAAC;IACvB,MAAMW,YAAW,GAAIhB,GAAG,CAAC,IAAI;;IAE7B;IACA,MAAMiB,WAAU,GAAIjB,GAAG,CAAC,UAAU;;IAElC;IACA,MAAMkB,WAAU,GAAIlB,GAAG,CAAC,IAAI;;IAE5B;IACA,MAAMmB,OAAM,GAAInB,GAAG,CAAC,KAAK;IACzB,MAAMoB,UAAS,GAAIpB,GAAG,CAAC,IAAI;IAC3B,MAAMqB,aAAY,GAAIrB,GAAG,CAAC,KAAK;;IAE/B;IACA,MAAMsB,YAAW,GAAItB,GAAG,CAAC,EAAE;IAC3B,MAAMuB,aAAY,GAAIvB,GAAG,CAAC,EAAE;;IAE5B;IACA,MAAMwB,WAAU,GAAIxB,GAAG,CAAC,EAAE;IAC1B;IACA,MAAMyB,YAAW,GAAI,CAAC;IACtB,MAAMC,QAAO,GAAI1B,GAAG,CAAC,IAAI;IACzB,MAAM2B,iBAAgB,GAAI3B,GAAG,CAAC,OAAO;IACrC,MAAM4B,WAAU,GAAI5B,GAAG,CAAC,QAAQ;IAChC,MAAM6B,YAAW,GAAI7B,GAAG,CAAC,IAAI;IAC7B,MAAM8B,iBAAgB,GAAI9B,GAAG,CAAC,EAAE;IAChC,MAAM+B,eAAc,GAAI/B,GAAG,CAAC,CAAC,IAAIgC,IAAI,CAAC,CAAC,EAAE,IAAIA,IAAI,CAACA,IAAI,CAACC,GAAG,CAAC,IAAI,EAAC,GAAI,EAAC,GAAI,EAAC,GAAI,IAAI,CAAC,CAAC;IACpF,MAAMC,cAAa,GAAIlC,GAAG,CAAC,IAAI;IAC/B,MAAMmC,aAAY,GAAInC,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC;IAC/E,MAAMoC,iBAAgB,GAAIpC,GAAG,CAAC,KAAK;IACnC,MAAMqC,QAAO,GAAIrC,GAAG,CAAC;MACnBsC,EAAE,EAAE,IAAI;MACRC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE,QAAQ;MACfC,WAAW,EAAE,EAAE;MACfC,QAAQ,EAAE;IACZ,CAAC;;IAED;IACA,MAAMC,MAAK,GAAIxC,QAAQ,CAAC,MAAMY,KAAK,CAAC6B,KAAK,CAACD,MAAK,IAAK,EAAE;IACtD,MAAME,eAAc,GAAI7C,GAAG,CAAC,IAAI;IAChC,MAAM8C,UAAS,GAAI9C,GAAG,CAAC,EAAE;IACzB,MAAM+C,WAAU,GAAI/C,GAAG,CAAC,EAAE;IAC1B,MAAMgD,QAAO,GAAIhD,GAAG,CAAC,IAAI;IACzB,MAAMiD,iBAAgB,GAAIjD,GAAG,CAAC,UAAU;IACxC,MAAMkD,cAAa,GAAIlD,GAAG,CAAC,GAAG;IAC9B,MAAMmD,WAAU,GAAInD,GAAG,CAAC,EAAE;IAC1B,MAAMoD,QAAO,GAAIpD,GAAG,CAAC,IAAI;;IAEzB;IACA,MAAMqD,SAAQ,GAAIrD,GAAG,CAAC,IAAI;IAC1B,MAAMsD,YAAW,GAAItD,GAAG,CAAC,CAAC,CAAC;;IAE3B;IACA,MAAMuD,gBAAe,GAAKC,GAAG,IAAK;MAChC,IAAI;QACF,OAAOC,IAAI,CAACC,QAAQ,CAACC,kBAAkB,CAACH,GAAG,CAAC,CAAC;MAC/C,EAAE,OAAOI,KAAK,EAAE;QACdC,OAAO,CAACC,IAAI,CAAC,aAAa,EAAEF,KAAK;QACjC,OAAOH,IAAI,CAACD,GAAG;MACjB;IACF;;IAEA;IACA,MAAMO,gBAAe,GAAI;MACvBC,KAAK,EAAE;QAAEpD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MACzCC,OAAO,EAAE;QAAEtD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MAC3CE,QAAQ,EAAE;QAAEvD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MAC5CG,MAAM,EAAE;QAAExD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MAC1CI,OAAO,EAAE;QAAEzD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU;IAC5C;;IAEA;IACA,MAAMK,iBAAgB,GAAI;MACxBC,GAAG,EAAE;QAAE3D,IAAI,EAAE,KAAK;QAAE4D,OAAO,EAAE;MAAI,CAAC;MAClCC,MAAM,EAAE;QAAE7D,IAAI,EAAE,KAAK;QAAE4D,OAAO,EAAE;MAAI,CAAC;MACrCE,IAAI,EAAE;QAAE9D,IAAI,EAAE,KAAK;QAAE4D,OAAO,EAAE;MAAI,CAAC;MACnCG,QAAQ,EAAE;QAAE/D,IAAI,EAAE,MAAM;QAAE4D,OAAO,EAAE;MAAI;IACzC;;IAEA;IACA,MAAMI,WAAU,GAAKC,GAAG,IAAK;MAC3B3D,WAAW,CAAC4D,KAAI,GAAID,GAAE;MACtBhB,OAAO,CAACkB,GAAG,CAAC,YAAY;;MAExB;MACA,MAAMC,IAAG,GAAIC,MAAM,CAACD,IAAG;MACvB,IAAIA,IAAI,EAAE;QACR,IAAI;UACF3B,SAAS,CAACyB,KAAI,GAAI,IAAIE,IAAI,CAACE,SAAS,CAACL,GAAG;UACxCxB,SAAS,CAACyB,KAAK,CAACK,EAAE,CAAC,MAAM,EAAEC,cAAc;UACzCvB,OAAO,CAACkB,GAAG,CAAC,gBAAgB;QAC9B,EAAE,OAAOnB,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,iBAAiB,EAAEA,KAAK;QACxC;MACF;;MAEA;MACAyB,uBAAuB,CAAC;;MAExB;MACAC,gBAAgB,CAAC;IACnB;;IAEA;IACA,MAAMD,uBAAsB,GAAIA,CAAA,KAAM;MACpC,QAAQpE,WAAW,CAAC6D,KAAK;QACvB,KAAK,UAAU;UACb;UACA;QACF,KAAK,YAAY;UACf;UACAS,eAAe,CAAC;UAChB;UACAC,iBAAiB,CAAC;UAClB;QACF,KAAK,cAAc;UACjB;UACA,IAAI7C,MAAM,CAACmC,KAAK,CAACW,MAAK,GAAI,KAAK,CAAC5C,eAAe,CAACiC,KAAK,EAAE;YACrDjC,eAAe,CAACiC,KAAI,GAAInC,MAAM,CAACmC,KAAK,CAAC,CAAC,CAAC,CAACxC,EAAC;UAC3C;UACA;MACJ;IACF;;IAEA;IACA,MAAMkD,iBAAgB,GAAIA,CAAA,KAAM;MAC9B,IAAI,CAACtE,WAAW,CAAC4D,KAAK,EAAE;MAExB,IAAI;QACF,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;;QAEvB;QACA,MAAMU,UAAS,GAAI,IAAIV,IAAI,CAACW,MAAM,CAAC;UACjCC,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;UAAE;UAChCC,MAAM,EAAE,IAAI;UACZC,WAAW,EAAE,SAAS;UACtBC,YAAY,EAAE,CAAC;UACfC,aAAa,EAAE,GAAG;UAClBC,SAAS,EAAE,SAAS;UACpBC,WAAW,EAAE;QACf,CAAC;QAEDhF,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACT,UAAU;;QAEhC;QACA,MAAMU,QAAO,GAAI;UACf9D,EAAE,EAAE,OAAM,GAAIN,IAAI,CAACC,GAAG,CAAC,CAAC;UACxBM,IAAI,EAAE,OAAO;UACbC,KAAK,EAAE,QAAQ;UACfC,WAAW,EAAE,OAAO;UACpB4D,SAAS,EAAE,CAAC,IAAIrE,IAAI,CAAC,CAAC,EAAE,IAAIA,IAAI,CAACA,IAAI,CAACC,GAAG,CAAC,IAAI,EAAC,GAAI,EAAC,GAAI,EAAC,GAAI,IAAI,CAAC,CAAC;UACnES,QAAQ,EAAE;YACRH,IAAI,EAAE,QAAQ;YACdqD,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;YAC9BC,MAAM,EAAE;UACV,CAAC;UACDS,OAAO,EAAEZ;QACX;QAEAlE,WAAW,CAACsD,KAAK,CAACyB,IAAI,CAACH,QAAQ;QAC/B3E,YAAY,CAAC2E,QAAQ,CAAC9D,EAAE,IAAIoD,UAAS;QAErCA,UAAU,CAACP,EAAE,CAAC,OAAO,EAAE,MAAMqB,UAAU,CAACJ,QAAQ,CAAC9D,EAAE,CAAC;QAEpDuB,OAAO,CAACkB,GAAG,CAAC,WAAW,EAAEqB,QAAQ;QACjC9F,SAAS,CAACmG,OAAO,CAAC,gBAAgB;MAEpC,EAAE,OAAO7C,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,YAAY,EAAEA,KAAK;MACnC;IACF;;IAEA;IACA,MAAM8C,UAAS,GAAKC,CAAC,IAAK;MACxB,MAAM;QAAEC,GAAG;QAAEC;MAAI,IAAIF,CAAC,CAACG,MAAK;MAE5B,IAAI7F,WAAW,CAAC6D,KAAI,KAAM,UAAS,IAAK3D,OAAO,CAAC2D,KAAK,EAAE;QACrD;QACAiC,cAAc,CAACH,GAAG,EAAEC,GAAG;MACzB,OAAO,IAAI5F,WAAW,CAAC6D,KAAI,KAAM,cAAa,IAAK3D,OAAO,CAAC2D,KAAK,EAAE;QAChE;QACAkC,YAAY,CAACJ,GAAG,EAAEC,GAAG;MACvB;MACA;IACF;;IAEA;IACA,MAAMI,cAAa,GAAIA,CAAA,KAAM;MAC3B;MACA9F,OAAO,CAAC2D,KAAI,GAAI,KAAI;MACpBpD,QAAQ,CAACoD,KAAI,GAAI,IAAG;;MAEpB;MACA,IAAIzB,SAAS,CAACyB,KAAK,EAAE;QACnBzB,SAAS,CAACyB,KAAK,CAACoC,KAAK,CAAC,IAAI;MAC5B;;MAEA;MACA7B,uBAAuB,CAAC;IAC1B;;IAEA;;IAEA;IACA,MAAM8B,aAAY,GAAIA,CAAA,KAAM;MAC1BhG,OAAO,CAAC2D,KAAI,GAAI,CAAC3D,OAAO,CAAC2D,KAAI;MAC7B;MACA,IAAI7D,WAAW,CAAC6D,KAAI,KAAM,YAAY,EAAE;QACtCpD,QAAQ,CAACoD,KAAI,GAAI,IAAG;QACpB,IAAIzB,SAAS,CAACyB,KAAK,EAAE;UACnBzB,SAAS,CAACyB,KAAK,CAACoC,KAAK,CAAC,IAAI;QAC5B;MACF;IACF;;IAEA;IACA,MAAM5B,gBAAe,GAAI,MAAAA,CAAA,KAAY;MACnC,IAAI,CAACpE,WAAW,CAAC4D,KAAK,EAAE;MAExB,IAAI;QACF;QACA,MAAM/D,KAAK,CAACqG,QAAQ,CAAC,aAAa;QAElC,MAAMpC,IAAG,GAAIC,MAAM,CAACD,IAAG;QACvB,IAAI,CAACA,IAAG,IAAK,CAACrC,MAAM,CAACmC,KAAI,IAAKnC,MAAM,CAACmC,KAAK,CAACW,MAAK,KAAM,CAAC,EAAE;UACvD5B,OAAO,CAACkB,GAAG,CAAC,kBAAkB;UAC9B;QACF;;QAEA;QACAsC,MAAM,CAACC,MAAM,CAAChE,YAAY,CAACwB,KAAK,CAAC,CAACyC,OAAO,CAACC,MAAK,IAAK;UAClDtG,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACD,MAAM;QACjC,CAAC;QACDlE,YAAY,CAACwB,KAAI,GAAI,CAAC;QAEtBnC,MAAM,CAACmC,KAAK,CAACyC,OAAO,CAACG,KAAI,IAAK;UAC5B,IAAI,CAACA,KAAI,IAAK,OAAOA,KAAK,CAACC,SAAQ,KAAM,QAAO,IAAK,OAAOD,KAAK,CAACE,QAAO,KAAM,QAAQ,EAAE;YACvF/D,OAAO,CAACC,IAAI,CAAC,WAAW,EAAE4D,KAAK;YAC/B;UACF;UAEA,IAAI;YACF,MAAMF,MAAK,GAAI,IAAIxC,IAAI,CAAC6C,MAAM,CAAC;cAC7BC,QAAQ,EAAE,CAACJ,KAAK,CAACC,SAAS,EAAED,KAAK,CAACE,QAAQ,CAAC;cAC3CG,KAAK,EAAEL,KAAK,CAAC9G,IAAG,IAAK,OAAO8G,KAAK,CAACpF,EAAE,EAAE;cACtC0F,IAAI,EAAE,IAAIhD,IAAI,CAACiD,IAAI,CAAC;gBAClBC,IAAI,EAAE,IAAIlD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBAC3BC,KAAK,EAAEC,eAAe,CAACX,KAAK,CAACY,MAAM,CAAC;gBACpCC,SAAS,EAAE,IAAIvD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE;cACjC,CAAC;YACH,CAAC;;YAED;YACA,MAAMK,UAAS,GAAI,IAAIxD,IAAI,CAACyD,UAAU,CAAC;cACrCC,QAAQ,EAAE,IAAI;cACdC,OAAO,EAAE;;gEAEyCjB,KAAK,CAAC9G,IAAG,IAAK,OAAO8G,KAAK,CAACpF,EAAE,EAAE;+DAChCsG,aAAa,CAAClB,KAAK,CAACY,MAAM,CAAC;+DAC3BZ,KAAK,CAACmB,OAAM,IAAK,CAAC;+DAClBnB,KAAK,CAACC,SAAS,CAACmB,OAAO,CAAC,CAAC,CAAC,KAAKpB,KAAK,CAACE,QAAQ,CAACkB,OAAO,CAAC,CAAC,CAAC;;eAExG;cACDC,MAAM,EAAE,IAAI/D,IAAI,CAACgE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE;YAChC,CAAC;YAEDxB,MAAM,CAACrC,EAAE,CAAC,OAAO,EAAE,MAAM;cACvB,IAAI;gBACFqD,UAAU,CAACS,IAAI,CAAC/H,WAAW,CAAC4D,KAAK,EAAE0C,MAAM,CAAC0B,WAAW,CAAC,CAAC;cACzD,EAAE,OAAOC,SAAS,EAAE;gBAClBtF,OAAO,CAACC,IAAI,CAAC,WAAW,EAAEqF,SAAS;cACrC;YACF,CAAC;YAED7F,YAAY,CAACwB,KAAK,CAAC4C,KAAK,CAACpF,EAAE,IAAIkF,MAAK;YACpC,IAAIpG,UAAU,CAAC0D,KAAK,EAAE;cACpB5D,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACqB,MAAM;YAC9B;UACF,EAAE,OAAO4B,WAAW,EAAE;YACpBvF,OAAO,CAACC,IAAI,CAAC,OAAO4D,KAAK,CAACpF,EAAE,UAAU,EAAE8G,WAAW;UACrD;QACF,CAAC;MACH,EAAE,OAAOxF,KAAK,EAAE;QACdC,OAAO,CAACC,IAAI,CAAC,aAAa,EAAEF,KAAK;;QAEjC;QACA,MAAMyF,YAAW,GAAI,CACnB;UACE/G,EAAE,EAAE,CAAC;UACL1B,IAAI,EAAE,UAAU;UAChBgH,QAAQ,EAAE,OAAO;UACjBD,SAAS,EAAE,QAAQ;UACnBW,MAAM,EAAE,QAAQ;UAChBO,OAAO,EAAE;QACX,CAAC,EACD;UACEvG,EAAE,EAAE,CAAC;UACL1B,IAAI,EAAE,UAAU;UAChBgH,QAAQ,EAAE,OAAO;UACjBD,SAAS,EAAE,QAAQ;UACnBW,MAAM,EAAE,MAAM;UACdO,OAAO,EAAE;QACX,EACF;QAEA9H,KAAK,CAACuI,MAAM,CAAC,WAAW,EAAED,YAAY;MACxC;IACF;IAEA,MAAMhB,eAAc,GAAKC,MAAM,IAAK;MAClC,MAAMiB,MAAK,GAAI;QACbC,MAAM,EAAE,SAAS;QACjBC,IAAI,EAAE,SAAS;QACf7F,KAAK,EAAE;MACT;MACA,MAAMK,KAAI,GAAIsF,MAAM,CAACjB,MAAM,KAAKiB,MAAM,CAACE,IAAG;MAE1C,MAAMC,SAAQ,GAAI;;iDAEyBzF,KAAK;;;OAGhD;MAEA,OAAO,4BAA2B,GAAIV,gBAAgB,CAACmG,SAAS;IAClE;IAEA,MAAMd,aAAY,GAAKN,MAAM,IAAK;MAChC,MAAMqB,SAAQ,GAAI;QAChBH,MAAM,EAAE,KAAK;QACbC,IAAI,EAAE,IAAI;QACV7F,KAAK,EAAE;MACT;MACA,OAAO+F,SAAS,CAACrB,MAAM,KAAKA,MAAK;IACnC;;IAEA;IACA,MAAMsB,qBAAoB,GAAK9E,KAAK,IAAK;MACvC1D,UAAU,CAAC0D,KAAI,GAAIA,KAAI;MACvBuC,MAAM,CAACC,MAAM,CAAChE,YAAY,CAACwB,KAAK,CAAC,CAACyC,OAAO,CAACC,MAAK,IAAK;QAClD,IAAI1C,KAAK,EAAE;UACT5D,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACqB,MAAM;QAC9B,OAAO;UACLtG,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACD,MAAM;QACjC;MACF,CAAC;IACH;;IAEA;IACA,MAAMqC,eAAc,GAAK/E,KAAK,IAAK;MACjCzD,aAAa,CAACyD,KAAI,GAAIA,KAAI;MAC1B;IACF;;IAEA;IACA,MAAMgF,aAAY,GAAIA,CAAA,KAAM;MAC1B,IAAI7I,WAAW,CAAC6D,KAAI,KAAM,UAAU,EAAE;QACpC,OAAO,WAAU;MACnB,OAAO,IAAI7D,WAAW,CAAC6D,KAAI,KAAM,cAAc,EAAE;QAC/C,OAAO,WAAU;MACnB;MACA,OAAO,EAAC;IACV;;IAEA;;IAEA;IACA,MAAMiC,cAAa,GAAIA,CAACH,GAAG,EAAEC,GAAG,KAAK;MACnC,IAAI,CAAC3F,WAAW,CAAC4D,KAAK,EAAE;MAExB,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;;MAEvB;MACA,MAAMwC,MAAK,GAAI,IAAIxC,IAAI,CAAC6C,MAAM,CAAC;QAC7BC,QAAQ,EAAE,CAAClB,GAAG,EAAEC,GAAG,CAAC;QACpBmB,IAAI,EAAE,IAAIhD,IAAI,CAACiD,IAAI,CAAC;UAClBC,IAAI,EAAE,IAAIlD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;UAC3BC,KAAK,EAAE,4BAA2B,GAAI7E,gBAAgB,CAAC;;;;;WAKtD,CAAC;UACFgF,SAAS,EAAE,IAAIvD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE;QACjC,CAAC,CAAC;QACFJ,KAAK,EAAE,WAAWnB,GAAG,CAACkC,OAAO,CAAC,CAAC,CAAC,KAAKjC,GAAG,CAACiC,OAAO,CAAC,CAAC,CAAC;MACrD,CAAC;;MAED;MACAtB,MAAM,CAACrC,EAAE,CAAC,OAAO,EAAE,MAAM;QACvB7E,SAAS,CAAC;UACRyJ,OAAO,EAAE,UAAUnD,GAAG,CAACkC,OAAO,CAAC,CAAC,CAAC,KAAKjC,GAAG,CAACiC,OAAO,CAAC,CAAC,CAAC,EAAE;UACtDvG,IAAI,EAAE;QACR,CAAC;MACH,CAAC;MAEDrB,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACqB,MAAM;MAC5BjG,aAAa,CAACuD,KAAK,CAACyB,IAAI,CAACiB,MAAM;MAC/BlG,YAAY,CAACwD,KAAK,CAACyB,IAAI,CAAC;QAAEK,GAAG;QAAEC;MAAI,CAAC;MAEpCvG,SAAS,CAACmG,OAAO,CAAC,WAAWG,GAAG,CAACkC,OAAO,CAAC,CAAC,CAAC,KAAKjC,GAAG,CAACiC,OAAO,CAAC,CAAC,CAAC,EAAE;IAClE;;IAEA;IACA,MAAMkB,YAAW,GAAIA,CAAA,KAAM;MACzBzI,aAAa,CAACuD,KAAK,CAACyC,OAAO,CAACC,MAAK,IAAK;QACpCtG,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACD,MAAM;MACjC,CAAC;MACDjG,aAAa,CAACuD,KAAI,GAAI,EAAC;MACvBxD,YAAY,CAACwD,KAAI,GAAI,EAAC;MACtBxE,SAAS,CAACmG,OAAO,CAAC,UAAU;IAC9B;;IAEA;;IAEA;IACA,MAAMwD,UAAS,GAAIA,CAAA,KAAM;MACvB,IAAIvI,QAAQ,CAACoD,KAAI,KAAM,QAAQ,EAAE;QAC/B,OAAO,oBAAmB;MAC5B,OAAO,IAAIpD,QAAQ,CAACoD,KAAI,KAAM,SAAS,EAAE;QACvC,OAAO,kBAAiB;MAC1B,OAAO,IAAIpD,QAAQ,CAACoD,KAAI,KAAM,WAAW,EAAE;QACzC,OAAO,aAAY;MACrB;MACA,OAAO,EAAC;IACV;;IAEA;IACA,MAAMoF,sBAAqB,GAAK3H,IAAI,IAAK;MACvCZ,iBAAiB,CAACmD,KAAI,GAAIvC,IAAG;IAC/B;;IAEA;IACA,MAAM4H,uBAAsB,GAAK3H,KAAK,IAAK;MACzCZ,WAAW,CAACkD,KAAI,GAAItC,KAAI;IAC1B;;IAEA;IACA,MAAM4H,kBAAiB,GAAKvE,MAAM,IAAK;MACrChE,YAAY,CAACiD,KAAI,GAAIe,MAAK;IAC5B;;IAEA;IACA,MAAMwE,uBAAsB,GAAKC,IAAI,IAAK;MACxCxI,iBAAiB,CAACgD,KAAI,GAAIwF,IAAG;IAC/B;;IAEA;IACA,MAAMC,qBAAoB,GAAKC,KAAK,IAAK;MACvCzI,eAAe,CAAC+C,KAAI,GAAI0F,KAAI;IAC9B;;IAEA;IACA,MAAMC,WAAU,GAAKC,IAAI,IAAK;MAC5B,IAAI,CAACrH,SAAS,CAACyB,KAAK,EAAE;QACpBxE,SAAS,CAACsD,KAAK,CAAC,UAAU;QAC1B;MACF;MAEA,IAAIlC,QAAQ,CAACoD,KAAI,KAAM4F,IAAI,EAAE;QAC3B;QACAhJ,QAAQ,CAACoD,KAAI,GAAI,IAAG;QACpB,IAAI;UACFzB,SAAS,CAACyB,KAAK,CAACoC,KAAK,CAAC,IAAI;QAC5B,EAAE,OAAOtD,KAAK,EAAE;UACdC,OAAO,CAACC,IAAI,CAAC,YAAY,EAAEF,KAAK;QAClC;QACAtD,SAAS,CAACqK,IAAI,CAAC,SAAS;QACxB;MACF;MAEAjJ,QAAQ,CAACoD,KAAI,GAAI4F,IAAG;MACpBvJ,OAAO,CAAC2D,KAAI,GAAI,KAAI;;MAEpB;MACA,MAAM8F,OAAM,GAAI;QACd9E,WAAW,EAAE/B,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAACb,KAAK;QAC5D8B,YAAY,EAAE,CAAC;QACfC,aAAa,EAAE,GAAG;QAClBC,SAAS,EAAElC,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAACb,KAAK;QAC1DiC,WAAW,EAAE5B,iBAAiB,CAAC1C,WAAW,CAACkD,KAAK,CAAC,CAACN;MACpD;MAEA,IAAI;QACFX,OAAO,CAACkB,GAAG,CAAC,SAAS,EAAE2F,IAAI,EAAE,KAAK,EAAEE,OAAO;QAE3C,QAAQF,IAAI;UACV,KAAK,QAAQ;YACXrH,SAAS,CAACyB,KAAK,CAAC+F,MAAM,CAACD,OAAO;YAC9B;UACF,KAAK,SAAS;YACZvH,SAAS,CAACyB,KAAK,CAACgG,OAAO,CAACF,OAAO;YAC/B;UACF,KAAK,WAAW;YACdvH,SAAS,CAACyB,KAAK,CAACiG,SAAS,CAACH,OAAO;YACjC;QACJ;QAEAtK,SAAS,CAACqK,IAAI,CAACV,UAAU,CAAC,CAAC;MAC7B,EAAE,OAAOrG,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,WAAW,EAAEA,KAAK;QAChCtD,SAAS,CAACsD,KAAK,CAAC,UAAU;QAC1BlC,QAAQ,CAACoD,KAAI,GAAI,IAAG;MACtB;IACF;;IAEA;IACA,MAAMM,cAAa,GAAK4F,KAAK,IAAK;MAChC;MACA,MAAM1E,OAAM,GAAIlG,KAAK,CAAC4K,KAAK,CAACC,GAAG;MAE/BpH,OAAO,CAACkB,GAAG,CAAC,YAAY,EAAEuB,OAAO;MACjCzC,OAAO,CAACkB,GAAG,CAAC,QAAQ,EAAEuB,OAAO,CAAC4E,SAAQ,IAAK5E,OAAO,CAAC6E,UAAU;;MAE7D;MACA,IAAI;QACF;QACA,MAAMC,QAAO,GAAIlK,WAAW,CAAC4D,KAAK,CAACuG,cAAc,CAAC,SAAS;QAC3DxH,OAAO,CAACkB,GAAG,CAAC,aAAa,EAAEqG,QAAQ;;QAEnC;QACA,MAAME,YAAW,GAAI;UACnBxF,WAAW,EAAE/B,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAACb,KAAK;UAC5D8B,YAAY,EAAE,CAAC;UAAG;UAClBC,aAAa,EAAE,CAAC;UAAE;UAClBC,SAAS,EAAElC,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAACb,KAAK;UAC1DiC,WAAW,EAAE5B,iBAAiB,CAAC1C,WAAW,CAACkD,KAAK,CAAC,CAACN;QACpD;QAEAX,OAAO,CAACkB,GAAG,CAAC,SAAS,EAAEuG,YAAY;QACnChF,OAAO,CAACiF,UAAU,CAACD,YAAY;;QAE/B;QACAE,UAAU,CAAC,MAAM;UACftK,WAAW,CAAC4D,KAAK,CAAC2G,UAAU,CAAC;QAC/B,CAAC,EAAE,GAAG;QAEN5H,OAAO,CAACkB,GAAG,CAAC,WAAW;MAEzB,EAAE,OAAOnB,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,YAAY,EAAEA,KAAK;MACnC;;MAEA;MACA,MAAM8H,IAAG,GAAI;QACXpJ,EAAE,EAAEN,IAAI,CAACC,GAAG,CAAC,CAAC;QACdM,IAAI,EAAEZ,iBAAiB,CAACmD,KAAK;QAC7BtC,KAAK,EAAEZ,WAAW,CAACkD,KAAK;QACxBrC,WAAW,EAAEX,iBAAiB,CAACgD,KAAK;QACpCuB,SAAS,EAAE,CAAC,GAAGtE,eAAe,CAAC+C,KAAK,CAAC;QAAE;QACvCpC,QAAQ,EAAEiJ,sBAAsB,CAACrF,OAAO;MAC1C;;MAEA;MACA7E,YAAY,CAACiK,IAAI,CAACpJ,EAAE,IAAIgE,OAAM;;MAE9B;MACA9E,WAAW,CAACsD,KAAK,CAACyB,IAAI,CAACmF,IAAI;;MAE3B;MACA,IAAI;QACFpF,OAAO,CAACnB,EAAE,CAAC,OAAO,EAAE,MAAM;UACxBtB,OAAO,CAACkB,GAAG,CAAC,SAAS,EAAE2G,IAAI,CAACpJ,EAAE;UAC9BkE,UAAU,CAACkF,IAAI,CAACpJ,EAAE;QACpB,CAAC;MACH,EAAE,OAAOsB,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,WAAW,EAAEA,KAAK;MAClC;;MAEA;MACAlC,QAAQ,CAACoD,KAAI,GAAI,IAAG;MACpB,IAAIzB,SAAS,CAACyB,KAAK,EAAE;QACnBzB,SAAS,CAACyB,KAAK,CAACoC,KAAK,CAAC,IAAI;MAC5B;MAEA5G,SAAS,CAACmG,OAAO,CAAC,MAAM1C,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAAClE,IAAI,IAAI;;MAE1E;MACAiD,OAAO,CAACkB,GAAG,CAAC,QAAQ,EAAE2G,IAAI;MAC1B7H,OAAO,CAACkB,GAAG,CAAC,UAAU,EAAEvD,WAAW,CAACsD,KAAK,CAACW,MAAM;IAClD;IAEA,MAAMkG,sBAAqB,GAAKrF,OAAO,IAAK;MAC1C,IAAIA,OAAO,CAAC6E,UAAS,KAAM,aAAa,EAAE;QACxC,OAAO;UACL5I,IAAI,EAAE,QAAQ;UACdqD,MAAM,EAAEU,OAAO,CAACsF,SAAS,CAAC,CAAC;UAC3B/F,MAAM,EAAES,OAAO,CAACuF,SAAS,CAAC;QAC5B;MACF,OAAO,IAAIvF,OAAO,CAAC6E,UAAS,KAAM,cAAc,EAAE;QAChD,OAAO;UACL5I,IAAI,EAAE,SAAS;UACfuJ,IAAI,EAAExF,OAAO,CAACyF,OAAO,CAAC;QACxB;MACF,OAAO,IAAIzF,OAAO,CAAC6E,UAAS,KAAM,gBAAgB,EAAE;QAClD,OAAO;UACL5I,IAAI,EAAE,WAAW;UACjByJ,MAAM,EAAE1F,OAAO,CAAC2F,SAAS,CAAC;QAC5B;MACF;MACA,OAAO,IAAG;IACZ;;IAEA;IACA,MAAM1G,eAAc,GAAIA,CAAA,KAAM;MAC5B;MACA;IAAA,CACF;;IAEA;IACA,MAAMiB,UAAS,GAAKlE,EAAE,IAAK;MACzBJ,cAAc,CAAC4C,KAAI,GAAIxC,EAAC;MACxB,MAAMgE,OAAM,GAAI7E,YAAY,CAACa,EAAE;MAC/B,IAAIgE,OAAO,EAAE;QACX;QACAA,OAAO,CAACiF,UAAU,CAAC;UACjBxF,YAAY,EAAE,CAAC;UACfC,aAAa,EAAE;QACjB,CAAC;;QAED;QACAxE,WAAW,CAACsD,KAAK,CAACyC,OAAO,CAAC2E,CAAA,IAAK;UAC7B,IAAIA,CAAC,CAAC5J,EAAC,KAAMA,EAAE,EAAE;YACf,MAAM6J,YAAW,GAAI1K,YAAY,CAACyK,CAAC,CAAC5J,EAAE;YACtC,IAAI6J,YAAY,EAAE;cAChBA,YAAY,CAACZ,UAAU,CAAC;gBACtBxF,YAAY,EAAE,CAAC;gBACfC,aAAa,EAAE;cACjB,CAAC;YACH;UACF;QACF,CAAC;MACH;IACF;;IAEA;IACA,MAAMoG,UAAS,GAAK9J,EAAE,IAAK;MACzB,MAAMgE,OAAM,GAAI7E,YAAY,CAACa,EAAE;MAC/B,IAAIgE,OAAO,EAAE;QACXpF,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACnB,OAAO;QAChC,OAAO7E,YAAY,CAACa,EAAE;MACxB;MAEAd,WAAW,CAACsD,KAAI,GAAItD,WAAW,CAACsD,KAAK,CAACuH,MAAM,CAACX,IAAG,IAAKA,IAAI,CAACpJ,EAAC,KAAMA,EAAE;MAEnE,IAAIJ,cAAc,CAAC4C,KAAI,KAAMxC,EAAE,EAAE;QAC/BJ,cAAc,CAAC4C,KAAI,GAAI,IAAG;MAC5B;MAEAxE,SAAS,CAACmG,OAAO,CAAC,QAAQ;IAC5B;;IAEA;IACA,MAAM6F,QAAO,GAAKZ,IAAI,IAAK;MACzBrJ,QAAQ,CAACyC,KAAI,GAAI;QAAE,GAAG4G;MAAK;MAC3BtJ,iBAAiB,CAAC0C,KAAI,GAAI,IAAG;IAC/B;;IAEA;IACA,MAAMyH,cAAa,GAAIA,CAAA,KAAM;MAC3B,MAAMb,IAAG,GAAIlK,WAAW,CAACsD,KAAK,CAAC0H,IAAI,CAACN,CAAA,IAAKA,CAAC,CAAC5J,EAAC,KAAMD,QAAQ,CAACyC,KAAK,CAACxC,EAAE;MACnE,IAAIoJ,IAAI,EAAE;QACRA,IAAI,CAACnJ,IAAG,GAAIF,QAAQ,CAACyC,KAAK,CAACvC,IAAG;QAC9BmJ,IAAI,CAAClJ,KAAI,GAAIH,QAAQ,CAACyC,KAAK,CAACtC,KAAI;QAChCkJ,IAAI,CAACjJ,WAAU,GAAIJ,QAAQ,CAACyC,KAAK,CAACrC,WAAU;;QAE5C;QACA,MAAM6D,OAAM,GAAI7E,YAAY,CAACiK,IAAI,CAACpJ,EAAE;QACpC,IAAIgE,OAAO,EAAE;UACXA,OAAO,CAACiF,UAAU,CAAC;YACjBzF,WAAW,EAAE/B,gBAAgB,CAAC2H,IAAI,CAACnJ,IAAI,CAAC,CAAC0B,KAAK;YAC9CgC,SAAS,EAAElC,gBAAgB,CAAC2H,IAAI,CAACnJ,IAAI,CAAC,CAAC0B,KAAK;YAC5CiC,WAAW,EAAE5B,iBAAiB,CAACoH,IAAI,CAAClJ,KAAK,CAAC,CAACgC;UAC7C,CAAC;QACH;QAEAlE,SAAS,CAACmG,OAAO,CAAC,QAAQ;MAC5B;MACArE,iBAAiB,CAAC0C,KAAI,GAAI,KAAI;IAChC;;IAEA;IACA,MAAM2H,aAAY,GAAIA,CAAA,KAAM;MAC1BpF,MAAM,CAACC,MAAM,CAAC7F,YAAY,CAAC,CAAC8F,OAAO,CAACjB,OAAM,IAAK;QAC7CpF,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACnB,OAAO;MAClC,CAAC;MAED9E,WAAW,CAACsD,KAAI,GAAI,EAAC;MACrB;MACAuC,MAAM,CAACqF,IAAI,CAACjL,YAAY,CAAC,CAAC8F,OAAO,CAACoF,GAAE,IAAK;QACvC,OAAOlL,YAAY,CAACkL,GAAG;MACzB,CAAC;MACDzK,cAAc,CAAC4C,KAAI,GAAI,IAAG;MAE1BxE,SAAS,CAACmG,OAAO,CAAC,UAAU;IAC9B;;IAEA;IACA,MAAMmG,qBAAoB,GAAKC,MAAM,IAAK;MACxC1K,aAAa,CAAC2C,KAAI,GAAI+H,MAAK;;MAE3B;MACArL,WAAW,CAACsD,KAAK,CAACyC,OAAO,CAACmE,IAAG,IAAK;QAChC,MAAMpF,OAAM,GAAI7E,YAAY,CAACiK,IAAI,CAACpJ,EAAE;QACpC,IAAIgE,OAAO,EAAE;UACX,IAAIuG,MAAM,CAACC,QAAQ,CAACpB,IAAI,CAACnJ,IAAI,CAAC,EAAE;YAC9BrB,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACG,OAAO;UAC/B,OAAO;YACLpF,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACnB,OAAO;UAClC;QACF;MACF,CAAC;IACH;;IAEA;IACA,MAAMyG,UAAS,GAAIA,CAAA,KAAM;MACvB,IAAIvL,WAAW,CAACsD,KAAK,CAACW,MAAK,KAAM,CAAC,EAAE;MAEpC,MAAMuG,MAAK,GAAI,IAAK/G,MAAM,CAACD,IAAI,CAACgI,MAAM,CAAE;MACxCxL,WAAW,CAACsD,KAAK,CAACyC,OAAO,CAACmE,IAAG,IAAK;QAChC,MAAMpF,OAAM,GAAI7E,YAAY,CAACiK,IAAI,CAACpJ,EAAE;QACpC,IAAIgE,OAAM,IAAKA,OAAO,CAAC2F,SAAS,EAAE;UAChCD,MAAM,CAACiB,MAAM,CAAC3G,OAAO,CAAC2F,SAAS,CAAC,CAAC;QACnC,OAAO,IAAIP,IAAI,CAAChJ,QAAQ,EAAEkD,MAAM,EAAE;UAChCoG,MAAM,CAACiB,MAAM,CAACvB,IAAI,CAAChJ,QAAQ,CAACkD,MAAM;QACpC;MACF,CAAC;MAED1E,WAAW,CAAC4D,KAAK,CAACoI,SAAS,CAAClB,MAAM;IACpC;;IAEA;;IAEA;IACA,MAAMhF,YAAW,GAAIA,CAACJ,GAAG,EAAEC,GAAG,KAAK;MACjC,IAAI,CAAC1F,OAAO,CAAC2D,KAAI,IAAK,CAAC5D,WAAW,CAAC4D,KAAK,EAAE;MAE1C,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;MACvB,MAAMmI,UAAS,GAAIrK,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI;;MAE7C;MACA3C,UAAU,CAACgC,KAAK,CAACyB,IAAI,CAAC;QAAEK,GAAG;QAAEC;MAAI,CAAC;;MAElC;MACA,MAAMW,MAAK,GAAI,IAAIxC,IAAI,CAAC6C,MAAM,CAAC;QAC7BC,QAAQ,EAAE,CAAClB,GAAG,EAAEC,GAAG,CAAC;QACpBmB,IAAI,EAAE,IAAIhD,IAAI,CAACiD,IAAI,CAAC;UAClBC,IAAI,EAAE,IAAIlD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;UAC3BC,KAAK,EAAE,4BAA2B,GAAI7E,gBAAgB,CAAC;;;wGAGuC4J,UAAU;;WAEvG,CAAC;UACF5E,SAAS,EAAE,IAAIvD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE;QACjC,CAAC,CAAC;QACFJ,KAAK,EAAE,MAAMoF,UAAU;MACzB,CAAC;MAEDjM,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACqB,MAAM;MAC5BzE,WAAW,CAAC+B,KAAK,CAACyB,IAAI,CAACiB,MAAM;;MAE7B;MACA,IAAI1E,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC,EAAE;QAC/B2H,cAAc,CAAC;MACjB;MAEA9M,SAAS,CAACmG,OAAO,CAAC,SAAS0G,UAAU,EAAE;IACzC;IAEA,MAAMC,cAAa,GAAIA,CAAA,KAAM;MAC3B,IAAI,CAAClM,WAAW,CAAC4D,KAAK,EAAE;MAExB,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;MAEvB,IAAIhC,QAAQ,CAAC8B,KAAK,EAAE;QAClB5D,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACzE,QAAQ,CAAC8B,KAAK;MACzC;MAEA,MAAMgH,IAAG,GAAIhJ,UAAU,CAACgC,KAAK,CAACD,GAAG,CAACwI,CAAA,IAAK,CAACA,CAAC,CAACzG,GAAG,EAAEyG,CAAC,CAACxG,GAAG,CAAC;MAErD7D,QAAQ,CAAC8B,KAAI,GAAI,IAAIE,IAAI,CAACsI,QAAQ,CAAC;QACjCxB,IAAI,EAAEA,IAAI;QACVhG,WAAW,EAAE,SAAS;QACtBC,YAAY,EAAE,CAAC;QACfwH,WAAW,EAAE;MACf,CAAC;MAEDrM,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACnD,QAAQ,CAAC8B,KAAK;IACtC;;IAEA;IACA,MAAM0I,WAAU,GAAKC,KAAK,IAAK;MAC7B3K,UAAU,CAACgC,KAAK,CAAC4I,MAAM,CAACD,KAAK,EAAE,CAAC;;MAEhC;MACAE,gBAAgB,CAAC;MACjB7K,UAAU,CAACgC,KAAK,CAACyC,OAAO,CAAC,CAACqG,KAAK,EAAEC,CAAC,KAAK;QACrCC,kBAAkB,CAACF,KAAK,CAAChH,GAAG,EAAEgH,KAAK,CAAC/G,GAAG,EAAEgH,CAAA,GAAI,CAAC;MAChD,CAAC;MAED,IAAI/K,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC,EAAE;QAC/B2H,cAAc,CAAC;MACjB,OAAO,IAAIpK,QAAQ,CAAC8B,KAAK,EAAE;QACzB5D,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACzE,QAAQ,CAAC8B,KAAK;QACvC9B,QAAQ,CAAC8B,KAAI,GAAI,IAAG;MACtB;;MAEA;MACA1B,QAAQ,CAAC0B,KAAI,GAAI,IAAG;IACtB;IAEA,MAAMgJ,kBAAiB,GAAIA,CAAClH,GAAG,EAAEC,GAAG,EAAE4G,KAAK,KAAK;MAC9C,MAAMzI,IAAG,GAAIC,MAAM,CAACD,IAAG;MAEvB,MAAMwC,MAAK,GAAI,IAAIxC,IAAI,CAAC6C,MAAM,CAAC;QAC7BC,QAAQ,EAAE,CAAClB,GAAG,EAAEC,GAAG,CAAC;QACpBmB,IAAI,EAAE,IAAIhD,IAAI,CAACiD,IAAI,CAAC;UAClBC,IAAI,EAAE,IAAIlD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;UAC3BC,KAAK,EAAE,4BAA2B,GAAI7E,gBAAgB,CAAC;;;wGAGuCkK,KAAK;;WAElG,CAAC;UACFlF,SAAS,EAAE,IAAIvD,IAAI,CAACmD,IAAI,CAAC,EAAE,EAAE,EAAE;QACjC,CAAC,CAAC;QACFJ,KAAK,EAAE,MAAM0F,KAAK;MACpB,CAAC;MAEDvM,WAAW,CAAC4D,KAAK,CAACqB,GAAG,CAACqB,MAAM;MAC5BzE,WAAW,CAAC+B,KAAK,CAACyB,IAAI,CAACiB,MAAM;IAC/B;IAEA,MAAMmG,gBAAe,GAAIA,CAAA,KAAM;MAC7B5K,WAAW,CAAC+B,KAAK,CAACyC,OAAO,CAACC,MAAK,IAAK;QAClCtG,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACD,MAAM;MACjC,CAAC;MACDzE,WAAW,CAAC+B,KAAI,GAAI,EAAC;IACvB;;IAEA;IACA,MAAMiJ,QAAO,GAAI,MAAAA,CAAA,KAAY;MAC3B,IAAIjL,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC,EAAE;QAC/BnF,SAAS,CAAC0N,OAAO,CAAC,WAAW;QAC7B;MACF;MAEA,IAAI;QACF;QACA,MAAMC,QAAO,GAAIC,iBAAiB,CAAC;QACnC,MAAMC,QAAO,GAAIC,IAAI,CAACC,IAAI,CAACJ,QAAO,IAAK9K,WAAW,CAAC2B,KAAI,GAAI,IAAG,GAAI,EAAE,CAAC,GAAE;;QAEvE1B,QAAQ,CAAC0B,KAAI,GAAI;UACfmJ,QAAQ,EAAEG,IAAI,CAACE,KAAK,CAACL,QAAQ,CAAC;UAC9BE,QAAQ,EAAEA,QAAQ;UAClBI,UAAU,EAAEzL,UAAU,CAACgC,KAAK,CAACW;QAC/B;QAEAnF,SAAS,CAACmG,OAAO,CAAC,QAAQ;MAC5B,EAAE,OAAO7C,KAAK,EAAE;QACdtD,SAAS,CAACsD,KAAK,CAAC,QAAQ;MAC1B;IACF;IAEA,MAAMsK,iBAAgB,GAAIA,CAAA,KAAM;MAC9B,IAAIM,aAAY,GAAI;MACpB,KAAK,IAAIX,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAI/K,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC,EAAEoI,CAAC,EAAE,EAAE;QACpD,MAAMY,EAAC,GAAI3L,UAAU,CAACgC,KAAK,CAAC+I,CAAC;QAC7B,MAAMa,EAAC,GAAI5L,UAAU,CAACgC,KAAK,CAAC+I,CAAA,GAAI,CAAC;QACjCW,aAAY,IAAKG,WAAW,CAACF,EAAE,CAAC5H,GAAG,EAAE4H,EAAE,CAAC7H,GAAG,EAAE8H,EAAE,CAAC7H,GAAG,EAAE6H,EAAE,CAAC9H,GAAG;MAC7D;MACA,OAAO4H,aAAY;IACrB;IAEA,MAAMG,WAAU,GAAIA,CAACC,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,IAAI,KAAK;MAC9C,MAAMC,CAAA,GAAI,MAAK;MACf,MAAMC,EAAC,GAAIL,IAAG,GAAIR,IAAI,CAACc,EAAE,GAAC,GAAE;MAC5B,MAAMC,EAAC,GAAIL,IAAG,GAAIV,IAAI,CAACc,EAAE,GAAC,GAAE;MAC5B,MAAME,EAAC,GAAI,CAACN,IAAI,GAACF,IAAI,IAAIR,IAAI,CAACc,EAAE,GAAC,GAAE;MACnC,MAAMG,EAAC,GAAI,CAACN,IAAI,GAACF,IAAI,IAAIT,IAAI,CAACc,EAAE,GAAC,GAAE;MAEnC,MAAMI,CAAA,GAAIlB,IAAI,CAACmB,GAAG,CAACH,EAAE,GAAC,CAAC,IAAIhB,IAAI,CAACmB,GAAG,CAACH,EAAE,GAAC,CAAC,IAC9BhB,IAAI,CAACoB,GAAG,CAACP,EAAE,IAAIb,IAAI,CAACoB,GAAG,CAACL,EAAE,IAC1Bf,IAAI,CAACmB,GAAG,CAACF,EAAE,GAAC,CAAC,IAAIjB,IAAI,CAACmB,GAAG,CAACF,EAAE,GAAC,CAAC;MACxC,MAAMI,CAAA,GAAI,IAAIrB,IAAI,CAACsB,KAAK,CAACtB,IAAI,CAACuB,IAAI,CAACL,CAAC,CAAC,EAAElB,IAAI,CAACuB,IAAI,CAAC,CAAC,GAACL,CAAC,CAAC;MAErD,OAAON,CAAA,GAAIS,CAAA;IACb;;IAEA;IACA,MAAMG,WAAU,GAAI,MAAAA,CAAA,KAAY;MAC9B,IAAI,CAAC/M,eAAe,CAACiC,KAAK,EAAE;QAC1BxE,SAAS,CAAC0N,OAAO,CAAC,aAAa;QAC/B;MACF;MAEA,IAAI;QACF,MAAMzN,YAAY,CAACsP,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE;UAC/CC,iBAAiB,EAAE,IAAI;UACvBC,gBAAgB,EAAE,IAAI;UACtBxN,IAAI,EAAE;QACR,CAAC;QAEDjC,SAAS,CAACmG,OAAO,CAAC,UAAU;QAC5B;MACF,EAAE,MAAM;QACNnG,SAAS,CAACqK,IAAI,CAAC,OAAO;MACxB;IACF;;IAEA;IACA,MAAMqF,QAAO,GAAIA,CAAA,KAAM;MACrBrC,gBAAgB,CAAC;MAEjB,IAAI3K,QAAQ,CAAC8B,KAAK,EAAE;QAClB5D,WAAW,CAAC4D,KAAK,CAAC2C,MAAM,CAACzE,QAAQ,CAAC8B,KAAK;QACvC9B,QAAQ,CAAC8B,KAAI,GAAI,IAAG;MACtB;MAEAhC,UAAU,CAACgC,KAAI,GAAI,EAAC;MACpB1B,QAAQ,CAAC0B,KAAI,GAAI,IAAG;MAEpBxE,SAAS,CAACmG,OAAO,CAAC,UAAU;IAC9B;;IAEA;IACA,MAAMwJ,WAAU,GAAK3N,EAAE,IAAK;MAC1BO,eAAe,CAACiC,KAAI,GAAIxC,EAAC;MACzB,MAAMoF,KAAI,GAAI/E,MAAM,CAACmC,KAAK,CAAC0H,IAAI,CAAC0D,CAAA,IAAKA,CAAC,CAAC5N,EAAC,KAAMA,EAAE;MAChD,IAAIoF,KAAK,EAAE;QACTpH,SAAS,CAACmG,OAAO,CAAC,WAAWiB,KAAK,CAAC9G,IAAI,EAAE;MAC3C;IACF;;IAEA;IACA,MAAMuP,uBAAsB,GAAKC,SAAS,IAAK;MAC7CnN,iBAAiB,CAAC6B,KAAI,GAAIsL,SAAQ;IACpC;;IAEA;IACA,MAAMC,oBAAmB,GAAKC,QAAQ,IAAK;MACzCpN,cAAc,CAAC4B,KAAI,GAAIwL,QAAO;IAChC;;IAEA;IACA,MAAMC,iBAAgB,GAAKC,KAAK,IAAK;MACnCrN,WAAW,CAAC2B,KAAI,GAAI0L,KAAI;IAC1B;;IAEA;IACA,MAAMC,aAAY,GAAIA,CAAA,KAAM;MAC1B,IAAI3N,UAAU,CAACgC,KAAK,CAACW,MAAK,KAAM,CAAC,EAAE;MAEnC,MAAMiL,UAAS,GAAI5N,UAAU,CAACgC,KAAK,CAAC,CAAC;MACrC5D,WAAW,CAAC4D,KAAK,CAAC6L,SAAS,CAAC,CAACD,UAAU,CAAC9J,GAAG,EAAE8J,UAAU,CAAC7J,GAAG,CAAC;MAC5D3F,WAAW,CAAC4D,KAAK,CAAC8L,OAAO,CAAC,EAAE;IAC9B;;IAEA;IACA,MAAMC,WAAU,GAAIA,CAAA,KAAM;MACxB,IAAI/N,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC,EAAE;MAEjC,MAAMqL,QAAO,GAAIhO,UAAU,CAACgC,KAAK,CAAChC,UAAU,CAACgC,KAAK,CAACW,MAAK,GAAI,CAAC;MAC7DvE,WAAW,CAAC4D,KAAK,CAAC6L,SAAS,CAAC,CAACG,QAAQ,CAAClK,GAAG,EAAEkK,QAAQ,CAACjK,GAAG,CAAC;MACxD3F,WAAW,CAAC4D,KAAK,CAAC8L,OAAO,CAAC,EAAE;IAC9B;;IAEA;IACA,MAAMG,SAAQ,GAAIA,CAAA,KAAM;MACtB,IAAIjO,UAAU,CAACgC,KAAK,CAACW,MAAK,KAAM,CAAC,EAAE;MAEnC,MAAMuG,MAAK,GAAI,IAAK/G,MAAM,CAACD,IAAI,CAACgI,MAAM,CAAE;MACxClK,UAAU,CAACgC,KAAK,CAACyC,OAAO,CAACqG,KAAI,IAAK;QAChC5B,MAAM,CAACiB,MAAM,CAAC,CAACW,KAAK,CAAChH,GAAG,EAAEgH,KAAK,CAAC/G,GAAG,CAAC;MACtC,CAAC;MAED3F,WAAW,CAAC4D,KAAK,CAACoI,SAAS,CAAClB,MAAM;IACpC;IAEA/L,SAAS,CAAC,MAAM;MACd;IAAA,CACD;IAED,OAAO;MACLe,YAAY;MACZC,WAAW;MACXE,OAAO;MACPG,YAAY;MACZF,UAAU;MACVC,aAAa;MACbG,WAAW;MACXU,cAAc;MACdP,iBAAiB;MACjBD,QAAQ;MACRE,WAAW;MACXC,YAAY;MACZC,iBAAiB;MACjBC,eAAe;MACfI,aAAa;MACbC,iBAAiB;MACjBC,QAAQ;MACRM,MAAM;MACNE,eAAe;MACfC,UAAU;MACVG,iBAAiB;MACjBC,cAAc;MACdC,WAAW;MACXC,QAAQ;MAER6D,cAAc;MACdrC,WAAW;MACX8B,UAAU;MACVS,aAAa;MACb6C,YAAY;MACZJ,qBAAqB;MACrBC,eAAe;MACfC,aAAa;MACbG,UAAU;MACVC,sBAAsB;MACtBC,uBAAuB;MACvBC,kBAAkB;MAClBC,uBAAuB;MACvBE,qBAAqB;MACrBE,WAAW;MACXjE,UAAU;MACV4F,UAAU;MACVE,QAAQ;MACRC,cAAc;MACdE,aAAa;MACbG,qBAAqB;MACrBG,UAAU;MACVS,WAAW;MACXO,QAAQ;MACR6B,WAAW;MACXI,QAAQ;MACRC,WAAW;MACXE,uBAAuB;MACvBE,oBAAoB;MACpBE,iBAAiB;MACjBE,aAAa;MACbI,WAAW;MACXE,SAAS;MAET;MACAC,iBAAiB,EAAGzO,IAAI,IAAKwB,gBAAgB,CAACxB,IAAI,CAAC,EAAE3B,IAAG,IAAK,MAAM;MACnEqQ,kBAAkB,EAAGzO,KAAK,IAAK8B,iBAAiB,CAAC9B,KAAK,CAAC,EAAE5B,IAAG,IAAK;IACnE;EACF;AACF","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d4881611a118a79a755972edb36b524b90880f49996582f29399964b1e023a8e.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d4881611a118a79a755972edb36b524b90880f49996582f29399964b1e023a8e.json new file mode 100644 index 00000000..3c2fd26c --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d4881611a118a79a755972edb36b524b90880f49996582f29399964b1e023a8e.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays.value[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","toRaw","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d506c006b10a90587a3d979518d0dd3e8c468a734ac268b34f355dd1a1b7e8fe.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d506c006b10a90587a3d979518d0dd3e8c468a734ac268b34f355dd1a1b7e8fe.json new file mode 100644 index 00000000..e42716f1 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d506c006b10a90587a3d979518d0dd3e8c468a734ac268b34f355dd1a1b7e8fe.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n // 清空非响应式对象\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","clearAllZones","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d5258dbbeeb58b94f3e79a3f7126257f448b8f1aad20e8d09b1872cea19c6cea.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d5258dbbeeb58b94f3e79a3f7126257f448b8f1aad20e8d09b1872cea19c6cea.json new file mode 100644 index 00000000..18819f4f --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d5258dbbeeb58b94f3e79a3f7126257f448b8f1aad20e8d09b1872cea19c6cea.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) return;\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","setDrawMode","mode","info","options","strokeColor","strokeWeight","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","radius","getRadius","path","getPath","bounds","getBounds","find","z","setOptions","strokeOpacity","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d5c35dda153d9581e077c9e1ff5e604ef4a8d865aea99091c81d6bab2fe8be71.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d5c35dda153d9581e077c9e1ff5e604ef4a8d865aea99091c81d6bab2fe8be71.json new file mode 100644 index 00000000..23c474b1 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d5c35dda153d9581e077c9e1ff5e604ef4a8d865aea99091c81d6bab2fe8be71.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) return;\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n overlay.setOptions(styleOptions);\n\n // 确保覆盖物被添加到地图\n if (!mapInstance.value.has(overlay)) {\n mapInstance.value.add(overlay);\n }\n console.log('威胁区绘制完成:', overlay);\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","radius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","strokeColor","strokeWeight","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","styleOptions","strokeOpacity","setOptions","has","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d7f1aa61f8f058bf79b422446182054c2b2934a8033508036ef0ff922658b7b5.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d7f1aa61f8f058bf79b422446182054c2b2934a8033508036ef0ff922658b7b5.json new file mode 100644 index 00000000..c9432340 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d7f1aa61f8f058bf79b422446182054c2b2934a8033508036ef0ff922658b7b5.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d89aa0053ef4743ea97b5483c45139b53afcf2595d5915581cdba3c0ade398d1.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d89aa0053ef4743ea97b5483c45139b53afcf2595d5915581cdba3c0ade398d1.json new file mode 100644 index 00000000..d65a2415 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d89aa0053ef4743ea97b5483c45139b53afcf2595d5915581cdba3c0ade398d1.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":";;EACOA,KAAK,EAAC;AAAkB;;EAEtBA,KAAK,EAAC;AAAY;;EAEhBA,KAAK,EAAC;AAAgB;;EAIhBA,KAAK,EAAC;AAAwB;;EAgB9BA,KAAK,EAAC;AAAwB;;EA8B9BA,KAAK,EAAC;AAAwB;;EA8BtCA,KAAK,EAAC;AAAe;;;EASJA,KAAK,EAAC;;;;EASLA,KAAK,EAAC;;;;;;;;;;;;;;;;;uBAtG/BC,mBAAA,CAqJM,OArJNC,UAqJM,GApJJC,mBAAA,YAAe,EACfC,mBAAA,CA+EM,OA/ENC,UA+EM,GA9EJF,mBAAA,eAAkB,EAClBC,mBAAA,CA4EM,OA5ENE,UA4EM,GA3EJC,YAAA,CA0EUC,kBAAA;gBA1EQC,MAAA,CAAAC,WAAW;+DAAXD,MAAA,CAAAC,WAAW,GAAAC,MAAA;IAAGC,UAAS,EAAEH,MAAA,CAAAI,cAAc;IAAE,cAAY,EAAC;;sBACtE,MAAe,CAAfV,mBAAA,YAAe,EACfI,YAAA,CAacO,sBAAA;MAbDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAWM,CAXNZ,mBAAA,CAWM,OAXNa,UAWM,GAVJV,YAAA,CASEW,0BAAA;QARCC,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9BC,cAAa,EAAEZ,MAAA,CAAAa,YAAY;QAC3B,UAAQ,EAAEb,MAAA,CAAAc,OAAO;QACjB,eAAa,EAAEd,MAAA,CAAAe,YAAY;QAC3B,aAAW,EAAEf,MAAA,CAAAgB,UAAU;QACvB,iBAAe,EAAEhB,MAAA,CAAAiB,aAAa;QAC9BC,uBAAuB,EAAElB,MAAA,CAAAmB,qBAAqB;QAC9CC,iBAAiB,EAAEpB,MAAA,CAAAqB;;;QAK1B3B,mBAAA,aAAgB,EAChBI,YAAA,CA2BcO,sBAAA;MA3BDC,KAAK,EAAC,OAAO;MAACC,IAAI,EAAC;;wBAC9B,MAyBM,CAzBNZ,mBAAA,CAyBM,OAzBN2B,UAyBM,GAxBJxB,YAAA,CAuBEyB,4BAAA;QAtBC,cAAY,EAAEvB,MAAA,CAAAwB,WAAW;QACzB,kBAAgB,EAAExB,MAAA,CAAAyB,cAAc;QAChC,qBAAmB,EAAEzB,MAAA,CAAA0B,iBAAiB;QACtC,WAAS,EAAE1B,MAAA,CAAA2B,QAAQ;QACnB,cAAY,EAAE3B,MAAA,CAAA4B,WAAW;QACzB,eAAa,EAAE5B,MAAA,CAAA6B,YAAY;QAC3B,oBAAkB,EAAE7B,MAAA,CAAA8B,iBAAiB;QACrC,mBAAiB,EAAE9B,MAAA,CAAA+B,eAAe;QAClC,gBAAc,EAAE/B,MAAA,CAAAgC,aAAa;QAC7BC,oBAAqB,EAAEjC,MAAA,CAAAkC,sBAAsB;QAC7CC,qBAAsB,EAAEnC,MAAA,CAAAoC,uBAAuB;QAC/CC,aAAa,EAAErC,MAAA,CAAAsC,WAAW;QAC1BC,YAAW,EAAEvC,MAAA,CAAAwC,UAAU;QACvBC,YAAW,EAAEzC,MAAA,CAAA0C,UAAU;QACvBC,UAAS,EAAE3C,MAAA,CAAA4C,QAAQ;QACnBC,eAAe,EAAE7C,MAAA,CAAA8C,aAAa;QAC9BC,uBAAuB,EAAE/C,MAAA,CAAAgD,qBAAqB;QAC9CC,oBAAoB,EAAEjD,MAAA,CAAAkD,kBAAkB;QACxCC,yBAAyB,EAAEnD,MAAA,CAAAoD,uBAAuB;QAClDC,uBAAwB,EAAErD,MAAA,CAAAsD,qBAAqB;QAC/CC,gBAAgB,EAAEvD,MAAA,CAAAwD,cAAc;QAChCC,YAAY,EAAEzD,MAAA,CAAA0D;;;QAKrBhE,mBAAA,YAAe,EACfI,YAAA,CAyBcO,sBAAA;MAzBDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAuBM,CAvBNZ,mBAAA,CAuBM,OAvBNgE,UAuBM,GAtBJ7D,YAAA,CAqBE8D,8BAAA;QApBCC,MAAM,EAAE7D,MAAA,CAAA6D,MAAM;QACd,mBAAiB,EAAE7D,MAAA,CAAA8D,eAAe;QAClC,aAAW,EAAE9D,MAAA,CAAA+D,UAAU;QACvB,UAAQ,EAAE/D,MAAA,CAAAc,OAAO;QACjB,oBAAkB,EAAEd,MAAA,CAAAgE,iBAAiB;QACrC,iBAAe,EAAEhE,MAAA,CAAAiE,cAAc;QAC/B,cAAY,EAAEjE,MAAA,CAAAkE,WAAW;QACzB,WAAS,EAAElE,MAAA,CAAAmE,QAAQ;QACnBzD,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9ByD,UAAS,EAAEpE,MAAA,CAAAqE,QAAQ;QACnBC,UAAS,EAAEtE,MAAA,CAAAuE,QAAQ;QACnBC,aAAY,EAAExE,MAAA,CAAAyE,WAAW;QACzBC,aAAY,EAAE1E,MAAA,CAAA2E,WAAW;QACzBC,eAAe,EAAE5E,MAAA,CAAA6E,aAAa;QAC9BC,aAAa,EAAE9E,MAAA,CAAA+E,WAAW;QAC1BC,WAAW,EAAEhF,MAAA,CAAAiF,SAAS;QACtBC,aAAY,EAAElF,MAAA,CAAAmF,WAAW;QACzBC,yBAAyB,EAAEpF,MAAA,CAAAqF,uBAAuB;QAClDC,sBAAsB,EAAEtF,MAAA,CAAAuF,oBAAoB;QAC5CC,mBAAmB,EAAExF,MAAA,CAAAyF;;;;;uDAQlC/F,mBAAA,YAAe,EACfC,mBAAA,CA0BM,OA1BN+F,UA0BM,GAzBJ5F,YAAA,CAKE6F,oBAAA;IAJCC,IAAI,EAAE5F,MAAA,CAAAC,WAAW;IACjB4F,WAAU,EAAE7F,MAAA,CAAA6F,WAAW;IACvBC,UAAS,EAAE9F,MAAA,CAAA8F,UAAU;IACtBC,GAAG,EAAC;kEAGNrG,mBAAA,YAAe,EACJM,MAAA,CAAAc,OAAO,I,cAAlBtB,mBAAA,CAMM,OANNwG,UAMM,GALJlG,YAAA,CAIEmG,mBAAA;IAHCC,KAAK,EAAElG,MAAA,CAAAmG,aAAa;IACrBC,IAAI,EAAC,MAAM;IACX,WAAS,EAAT;6EAIJ1G,mBAAA,YAAe,EACJM,MAAA,CAAA2B,QAAQ,I,cAAnBnC,mBAAA,CAOM,OAPN6G,UAOM,GANJvG,YAAA,CAKEmG,mBAAA;IAJCC,KAAK,EAAElG,MAAA,CAAAsG,UAAU;IAClBF,IAAI,EAAC,MAAM;IACX,WAAS,EAAT,EAAS;IACRG,QAAQ,EAAE;+EAKjB7G,mBAAA,cAAiB,EACjBI,YAAA,CAmCY0G,oBAAA;gBAlCDxG,MAAA,CAAAyG,iBAAiB;+DAAjBzG,MAAA,CAAAyG,iBAAiB,GAAAvG,MAAA;IAC1BgG,KAAK,EAAC,OAAO;IACbQ,KAAK,EAAC;;IA4BKC,MAAM,EAAAC,QAAA,CACf,MAA4D,CAA5D9G,YAAA,CAA4D+G,oBAAA;MAAhDC,OAAK,EAAAC,MAAA,QAAAA,MAAA,MAAA7G,MAAA,IAAEF,MAAA,CAAAyG,iBAAiB;;wBAAU,MAAEM,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;QAChDjH,YAAA,CAAgE+G,oBAAA;MAArDT,IAAI,EAAC,SAAS;MAAEU,OAAK,EAAE9G,MAAA,CAAAwD;;wBAAgB,MAAEuD,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;;sBA5BtD,MAyBU,CAzBVjH,YAAA,CAyBUkH,kBAAA;MAzBAC,KAAK,EAAEjH,MAAA,CAAAkH,QAAQ;MAAE,aAAW,EAAC,MAAM;MAACC,IAAI,EAAC;;wBACjD,MAQe,CARfrH,YAAA,CAQesH,uBAAA;QARD9G,KAAK,EAAC;MAAM;0BACxB,MAMY,CANZR,YAAA,CAMYuH,oBAAA;sBANQrH,MAAA,CAAAkH,QAAQ,CAACd,IAAI;qEAAbpG,MAAA,CAAAkH,QAAQ,CAACd,IAAI,GAAAlG,MAAA;UAAEoH,KAAmB,EAAnB;YAAA;UAAA;;4BACjC,MAAwC,CAAxCxH,YAAA,CAAwCyH,oBAAA;YAA7BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA0CyH,oBAAA;YAA/BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA2CyH,oBAAA;YAAhCjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAAyCyH,oBAAA;YAA9BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA0CyH,oBAAA;YAA/BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;;;;;UAGlC1H,YAAA,CAOesH,uBAAA;QAPD9G,KAAK,EAAC;MAAM;0BACxB,MAKY,CALZR,YAAA,CAKYuH,oBAAA;sBALQrH,MAAA,CAAAkH,QAAQ,CAACO,KAAK;qEAAdzH,MAAA,CAAAkH,QAAQ,CAACO,KAAK,GAAAvH,MAAA;UAAEoH,KAAmB,EAAnB;YAAA;UAAA;;4BAClC,MAAqC,CAArCxH,YAAA,CAAqCyH,oBAAA;YAA1BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAAwCyH,oBAAA;YAA7BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAAsCyH,oBAAA;YAA3BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAA2CyH,oBAAA;YAAhCjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;;;;;UAGlC1H,YAAA,CAMesH,uBAAA;QAND9G,KAAK,EAAC;MAAM;0BACxB,MAIE,CAJFR,YAAA,CAIE4H,mBAAA;sBAHS1H,MAAA,CAAAkH,QAAQ,CAACS,WAAW;qEAApB3H,MAAA,CAAAkH,QAAQ,CAACS,WAAW,GAAAzH,MAAA;UAC7BkG,IAAI,EAAC,UAAU;UACdwB,IAAI,EAAE","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d8a91f1befb3de0324a10fc1230809167e32988695a9ed60ca549a04f7d8be9c.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d8a91f1befb3de0324a10fc1230809167e32988695a9ed60ca549a04f7d8be9c.json new file mode 100644 index 00000000..3ebd293f --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/d8a91f1befb3de0324a10fc1230809167e32988695a9ed60ca549a04f7d8be9c.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/dac1ef33812d2b3b670876cf699ef40cb25b3c8311bb3245be70a59e644fda4c.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/dac1ef33812d2b3b670876cf699ef40cb25b3c8311bb3245be70a59e644fda4c.json new file mode 100644 index 00000000..9014122f --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/dac1ef33812d2b3b670876cf699ef40cb25b3c8311bb3245be70a59e644fda4c.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n // 添加测试威胁区以验证显示功能\n addTestThreatZone();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays.value[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: getGeometryFromOverlay(overlay)\n };\n\n // 将原始overlay存储在非响应式对象中\n zoneOverlays[zone.id] = overlay;\n\n // 只将zone的数据部分添加到响应式数组中\n threatZones.value.push(zone);\n\n // 添加点击事件\n try {\n overlay.on('click', () => {\n console.log('威胁区被点击:', zone.id);\n selectZone(zone.id);\n });\n } catch (error) {\n console.error('添加点击事件失败:', error);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n\n // 输出调试信息\n console.log('威胁区数据:', zone);\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","addTestThreatZone","length","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","zone","getGeometryFromOverlay","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/df5b0111f6310642d6179273f94074975ae4d41331733a61052505abaaae0410.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/df5b0111f6310642d6179273f94074975ae4d41331733a61052505abaaae0410.json new file mode 100644 index 00000000..eeafa487 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/df5b0111f6310642d6179273f94074975ae4d41331733a61052505abaaae0410.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed, toRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n // 使用普通对象存储地图覆盖物,避免响应式问题\n const zoneOverlays = {};\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 添加测试威胁区(用于调试)\n const addTestThreatZone = () => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n\n // 创建一个测试圆形威胁区\n const testCircle = new AMap.Circle({\n center: [116.397428, 39.90923],\n // 北京天安门\n radius: 1000,\n strokeColor: '#FF6B6B',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: '#FF6B6B',\n fillOpacity: 0.3\n });\n mapInstance.value.add(testCircle);\n\n // 创建威胁区数据\n const testZone = {\n id: 'test-' + Date.now(),\n type: 'radar',\n level: 'medium',\n description: '测试威胁区',\n timeRange: [new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)],\n geometry: {\n type: 'circle',\n center: [116.397428, 39.90923],\n radius: 1000\n },\n overlay: testCircle\n };\n threatZones.value.push(testZone);\n zoneOverlays[testZone.id] = testCircle;\n testCircle.on('click', () => selectZone(testZone.id));\n console.log('已添加测试威胁区:', testZone);\n ElMessage.success('已添加测试威胁区(红色圆形)');\n } catch (error) {\n console.error('添加测试威胁区失败:', error);\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = async event => {\n // 使用toRaw来获取原始对象,避免Vue响应式代理问题\n const overlay = toRaw(event.obj);\n console.log('原始威胁区绘制完成:', overlay);\n console.log('覆盖物类型:', overlay.className || overlay.CLASS_NAME);\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 检查覆盖物是否已经在地图上\n const overlays = mapInstance.value.getAllOverlays('polygon');\n console.log('地图上的多边形覆盖物:', overlays);\n\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 3,\n // 加粗边框\n strokeOpacity: 1,\n // 完全不透明的边框\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n console.log('应用样式选项:', styleOptions);\n overlay.setOptions(styleOptions);\n\n // 强制刷新地图显示\n setTimeout(() => {\n mapInstance.value.setFitView();\n }, 100);\n console.log('威胁区样式设置完成');\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据 - 不要将overlay放入响应式数据中\n const geometry = getGeometryFromOverlay(overlay);\n\n // 验证必需字段\n if (!currentThreatType.value) {\n console.error('威胁类型为空:', currentThreatType.value);\n ElMessage.error('请选择威胁类型');\n return;\n }\n if (!threatLevel.value) {\n console.error('威胁等级为空:', threatLevel.value);\n ElMessage.error('请选择威胁等级');\n return;\n }\n if (!geometry) {\n console.error('几何信息解析失败');\n ElMessage.error('无法解析威胁区形状信息');\n return;\n }\n const zoneData = {\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value || '',\n timeRange: [...threatTimeRange.value],\n // 创建副本避免响应式问题\n geometry: geometry\n };\n try {\n console.log('准备发送威胁区数据:', zoneData);\n console.log('当前威胁类型:', currentThreatType.value);\n console.log('当前威胁等级:', threatLevel.value);\n console.log('当前描述:', threatDescription.value);\n console.log('几何信息:', geometry);\n\n // 保存到后端\n const response = await fetch('/api/threat-zones', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(zoneData)\n });\n console.log('API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('API错误响应:', errorText);\n throw new Error(`保存威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('API成功响应:', result);\n if (result.success) {\n const zone = result.data;\n\n // 移除原始绘制的覆盖物\n mapInstance.value.remove(overlay);\n\n // 使用统一的渲染函数重新创建覆盖物,确保格式一致\n renderThreatZoneOnMap(zone);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n console.log('威胁区已保存到数据库并重新渲染:', zone);\n } else {\n throw new Error(result.message || '保存威胁区失败');\n }\n } catch (error) {\n console.error('保存威胁区到后端失败:', error);\n ElMessage.error('保存威胁区失败: ' + error.message);\n\n // 保存失败时,从地图移除覆盖物\n mapInstance.value.remove(overlay);\n }\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 输出调试信息\n console.log('当前所有威胁区:', threatZones.value.length);\n };\n const getGeometryFromOverlay = overlay => {\n console.log('解析覆盖物几何信息:', overlay.CLASS_NAME || overlay.className);\n try {\n if (overlay.CLASS_NAME === 'AMap.Circle' || overlay.className === 'Overlay.Circle') {\n const center = overlay.getCenter();\n const radius = overlay.getRadius();\n console.log('圆形几何信息:', {\n center,\n radius\n });\n return {\n type: 'circle',\n center: [center.lng, center.lat],\n radius: radius\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon' || overlay.className === 'Overlay.Polygon') {\n const path = overlay.getPath();\n console.log('多边形几何信息:', path);\n return {\n type: 'polygon',\n path: path.map(point => [point.lng, point.lat])\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle' || overlay.className === 'Overlay.Rectangle') {\n const bounds = overlay.getBounds();\n console.log('矩形几何信息:', bounds);\n return {\n type: 'rectangle',\n bounds: [bounds.getSouthWest().lng, bounds.getSouthWest().lat, bounds.getNorthEast().lng, bounds.getNorthEast().lat]\n };\n }\n } catch (error) {\n console.error('解析几何信息失败:', error);\n }\n console.error('未识别的覆盖物类型:', overlay.CLASS_NAME || overlay.className);\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = async () => {\n try {\n console.log('开始加载威胁区数据...');\n console.log('请求URL: /api/threat-zones');\n const response = await fetch('/api/threat-zones');\n console.log('加载API响应状态:', response.status, response.statusText);\n if (!response.ok) {\n const errorText = await response.text();\n console.error('加载API错误响应:', errorText);\n throw new Error(`获取威胁区失败: ${response.status} ${response.statusText} - ${errorText}`);\n }\n const result = await response.json();\n console.log('加载API成功响应:', result);\n if (result.success) {\n console.log('从后端获取威胁区数据:', result.data);\n\n // 清除现有威胁区\n clearAllZones();\n\n // 渲染威胁区到地图\n result.data.forEach(zone => {\n renderThreatZoneOnMap(zone);\n });\n console.log(`成功加载 ${result.data.length} 个威胁区`);\n } else {\n throw new Error(result.message || '获取威胁区失败');\n }\n } catch (error) {\n console.error('加载威胁区失败:', error);\n ElMessage.error('加载威胁区失败: ' + error.message);\n }\n };\n\n // 在地图上渲染威胁区\n const renderThreatZoneOnMap = zone => {\n if (!mapInstance.value) return;\n try {\n const AMap = window.AMap;\n let overlay = null;\n\n // 根据几何类型创建覆盖物\n if (zone.geometry.type === 'circle') {\n overlay = new AMap.Circle({\n center: zone.geometry.center,\n radius: zone.geometry.radius,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'polygon') {\n overlay = new AMap.Polygon({\n path: zone.geometry.path,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n } else if (zone.geometry.type === 'rectangle') {\n overlay = new AMap.Rectangle({\n bounds: zone.geometry.bounds,\n strokeColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[zone.type]?.color || '#FF0000',\n fillOpacity: threatLevelConfig[zone.level]?.opacity || 0.3\n });\n }\n if (overlay) {\n // 添加到地图\n mapInstance.value.add(overlay);\n\n // 存储覆盖物\n zoneOverlays[zone.id] = overlay;\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n\n // 添加点击事件\n overlay.on('click', () => {\n selectZone(zone.id);\n });\n console.log(`威胁区 ${zone.id} 已渲染到地图`);\n }\n } catch (error) {\n console.error('渲染威胁区失败:', zone.id, error);\n }\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const overlay = zoneOverlays[id];\n if (overlay) {\n // 高亮选中的威胁区\n overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id) {\n const otherOverlay = zoneOverlays[z.id];\n if (otherOverlay) {\n otherOverlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = async id => {\n try {\n console.log('开始删除威胁区:', id);\n const response = await fetch(`/api/threat-zones/${id}`, {\n method: 'DELETE'\n });\n if (!response.ok) {\n throw new Error('删除威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 从地图移除覆盖物\n const overlay = zoneOverlays[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays[id];\n }\n\n // 从列表中移除\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n console.log('威胁区删除成功:', id);\n } else {\n throw new Error(result.message || '删除威胁区失败');\n }\n } catch (error) {\n console.error('删除威胁区失败:', error);\n ElMessage.error('删除威胁区失败: ' + error.message);\n }\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = async () => {\n try {\n console.log('开始更新威胁区:', editForm.value.id);\n const response = await fetch(`/api/threat-zones/${editForm.value.id}`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n type: editForm.value.type,\n level: editForm.value.level,\n description: editForm.value.description\n })\n });\n if (!response.ok) {\n throw new Error('更新威胁区失败');\n }\n const result = await response.json();\n if (result.success) {\n // 更新本地数据\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n }\n ElMessage.success('威胁区已更新');\n console.log('威胁区更新成功:', result.data);\n } else {\n throw new Error(result.message || '更新威胁区失败');\n }\n } catch (error) {\n console.error('更新威胁区失败:', error);\n ElMessage.error('更新威胁区失败: ' + error.message);\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = async (skipConfirm = false) => {\n try {\n if (!skipConfirm && threatZones.value.length > 0) {\n // 批量删除所有威胁区\n const zoneIds = threatZones.value.map(zone => zone.id);\n console.log('开始批量删除威胁区:', zoneIds);\n const response = await fetch('/api/threat-zones', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n ids: zoneIds\n })\n });\n if (!response.ok) {\n throw new Error('批量删除威胁区失败');\n }\n const result = await response.json();\n if (!result.success) {\n throw new Error(result.message || '批量删除威胁区失败');\n }\n console.log('威胁区批量删除成功:', result.data);\n }\n\n // 从地图移除所有覆盖物\n Object.values(zoneOverlays).forEach(overlay => {\n if (mapInstance.value) {\n mapInstance.value.remove(overlay);\n }\n });\n\n // 清空数据\n threatZones.value = [];\n Object.keys(zoneOverlays).forEach(key => {\n delete zoneOverlays[key];\n });\n selectedZoneId.value = null;\n if (!skipConfirm) {\n ElMessage.success('已清除所有威胁区');\n }\n } catch (error) {\n console.error('清除威胁区失败:', error);\n if (!skipConfirm) {\n ElMessage.error('清除威胁区失败: ' + error.message);\n }\n }\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(overlay);\n } else {\n mapInstance.value.remove(overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n const overlay = zoneOverlays[zone.id];\n if (overlay && overlay.getBounds) {\n bounds.extend(overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath,\n // 威胁区名称获取函数(供面板组件使用)\n getThreatTypeName: type => threatTypeConfig[type]?.name || '未知威胁',\n getThreatLevelName: level => threatLevelConfig[level]?.name || '未知等级'\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","toRaw","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","addTestThreatZone","testCircle","Circle","center","radius","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","add","testZone","timeRange","overlay","push","selectZone","success","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","circle","polygon","rectangle","event","obj","className","CLASS_NAME","overlays","getAllOverlays","styleOptions","setOptions","setTimeout","setFitView","getGeometryFromOverlay","zoneData","response","fetch","method","headers","body","JSON","stringify","statusText","ok","errorText","text","Error","result","json","zone","data","renderThreatZoneOnMap","getCenter","getRadius","path","getPath","point","bounds","getBounds","getSouthWest","getNorthEast","clearAllZones","Polygon","Rectangle","z","otherOverlay","deleteZone","filter","editZone","saveEditedZone","find","skipConfirm","zoneIds","ids","keys","key","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath","getThreatTypeName","getThreatLevelName"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/df613f2157a612b414ec4cf0a4edb06907a8c7deccba64a158e0f7e1a58480a3.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/df613f2157a612b414ec4cf0a4edb06907a8c7deccba64a158e0f7e1a58480a3.json new file mode 100644 index 00000000..1a4a3393 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/df613f2157a612b414ec4cf0a4edb06907a8c7deccba64a158e0f7e1a58480a3.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n try {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n console.log('MouseTool初始化成功');\n } catch (error) {\n console.error('MouseTool初始化失败:', error);\n }\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) {\n ElMessage.error('绘制工具未初始化');\n return;\n }\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n try {\n mouseTool.value.close(true);\n } catch (error) {\n console.warn('关闭绘制工具时出错:', error);\n }\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n try {\n console.log('开始绘制模式:', mode, '选项:', options);\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n } catch (error) {\n console.error('启动绘制工具失败:', error);\n ElMessage.error('启动绘制工具失败');\n drawMode.value = null;\n }\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 确保覆盖物已添加到地图并设置正确的样式\n try {\n // 重新设置样式以确保显示正确\n const styleOptions = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n strokeOpacity: 0.8,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n overlay.setOptions(styleOptions);\n\n // 确保覆盖物被添加到地图\n // MouseTool绘制的覆盖物通常已经自动添加到地图,但我们确保一下\n try {\n mapInstance.value.add(overlay);\n } catch (error) {\n // 如果已经存在则忽略错误\n console.log('覆盖物可能已存在于地图中');\n }\n console.log('威胁区绘制完成:', overlay);\n } catch (error) {\n console.error('设置威胁区样式失败:', error);\n }\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 更新规划算法\n const updatePlanningAlgorithm = algorithm => {\n planningAlgorithm.value = algorithm;\n };\n\n // 更新飞行高度\n const updateFlightAltitude = altitude => {\n flightAltitude.value = altitude;\n };\n\n // 更新飞行速度\n const updateFlightSpeed = speed => {\n flightSpeed.value = speed;\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n updatePlanningAlgorithm,\n updateFlightAltitude,\n updateFlightSpeed,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","radius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","strokeColor","strokeWeight","strokeOpacity","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","styleOptions","setOptions","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","updatePlanningAlgorithm","algorithm","updateFlightAltitude","altitude","updateFlightSpeed","speed","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/e2f70b087d3d17367cd184e57e8d8bd18db70a450a9ebeee2b16d1dd4496b53f.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/e2f70b087d3d17367cd184e57e8d8bd18db70a450a9ebeee2b16d1dd4496b53f.json new file mode 100644 index 00000000..7dfde015 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/e2f70b087d3d17367cd184e57e8d8bd18db70a450a9ebeee2b16d1dd4496b53f.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":";;EACOA,KAAK,EAAC;AAAkB;;EAEtBA,KAAK,EAAC;AAAY;;EAEhBA,KAAK,EAAC;AAAgB;;EAIhBA,KAAK,EAAC;AAAwB;;EAgB9BA,KAAK,EAAC;AAAwB;;EA8B9BA,KAAK,EAAC;AAAwB;;EA8BtCA,KAAK,EAAC;AAAe;;;EASJA,KAAK,EAAC;;;;EASLA,KAAK,EAAC;;;;;;;;;;;;;;;;;uBAtG/BC,mBAAA,CAqJM,OArJNC,UAqJM,GApJJC,mBAAA,YAAe,EACfC,mBAAA,CA+EM,OA/ENC,UA+EM,GA9EJF,mBAAA,eAAkB,EAClBC,mBAAA,CA4EM,OA5ENE,UA4EM,GA3EJC,YAAA,CA0EUC,kBAAA;gBA1EQC,MAAA,CAAAC,WAAW;+DAAXD,MAAA,CAAAC,WAAW,GAAAC,MAAA;IAAGC,UAAS,EAAEH,MAAA,CAAAI,cAAc;IAAE,cAAY,EAAC;;sBACtE,MAAe,CAAfV,mBAAA,YAAe,EACfI,YAAA,CAacO,sBAAA;MAbDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAWM,CAXNZ,mBAAA,CAWM,OAXNa,UAWM,GAVJV,YAAA,CASEW,0BAAA;QARCC,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9BC,cAAa,EAAEZ,MAAA,CAAAa,YAAY;QAC3B,UAAQ,EAAEb,MAAA,CAAAc,OAAO;QACjB,eAAa,EAAEd,MAAA,CAAAe,YAAY;QAC3B,aAAW,EAAEf,MAAA,CAAAgB,UAAU;QACvB,iBAAe,EAAEhB,MAAA,CAAAiB,aAAa;QAC9BC,uBAAuB,EAAElB,MAAA,CAAAmB,qBAAqB;QAC9CC,iBAAiB,EAAEpB,MAAA,CAAAqB;;;QAK1B3B,mBAAA,aAAgB,EAChBI,YAAA,CA2BcO,sBAAA;MA3BDC,KAAK,EAAC,OAAO;MAACC,IAAI,EAAC;;wBAC9B,MAyBM,CAzBNZ,mBAAA,CAyBM,OAzBN2B,UAyBM,GAxBJxB,YAAA,CAuBEyB,4BAAA;QAtBC,cAAY,EAAEvB,MAAA,CAAAwB,WAAW;QACzB,kBAAgB,EAAExB,MAAA,CAAAyB,cAAc;QAChC,qBAAmB,EAAEzB,MAAA,CAAA0B,iBAAiB;QACtC,WAAS,EAAE1B,MAAA,CAAA2B,QAAQ;QACnB,cAAY,EAAE3B,MAAA,CAAA4B,WAAW;QACzB,eAAa,EAAE5B,MAAA,CAAA6B,YAAY;QAC3B,oBAAkB,EAAE7B,MAAA,CAAA8B,iBAAiB;QACrC,mBAAiB,EAAE9B,MAAA,CAAA+B,eAAe;QAClC,gBAAc,EAAE/B,MAAA,CAAAgC,aAAa;QAC7BC,oBAAqB,EAAEjC,MAAA,CAAAkC,sBAAsB;QAC7CC,qBAAsB,EAAEnC,MAAA,CAAAoC,uBAAuB;QAC/CC,aAAa,EAAErC,MAAA,CAAAsC,WAAW;QAC1BC,YAAW,EAAEvC,MAAA,CAAAwC,UAAU;QACvBC,YAAW,EAAEzC,MAAA,CAAA0C,UAAU;QACvBC,UAAS,EAAE3C,MAAA,CAAA4C,QAAQ;QACnBC,eAAe,EAAE7C,MAAA,CAAA8C,aAAa;QAC9BC,uBAAuB,EAAE/C,MAAA,CAAAgD,qBAAqB;QAC9CC,oBAAoB,EAAEjD,MAAA,CAAAkD,kBAAkB;QACxCC,yBAAyB,EAAEnD,MAAA,CAAAoD,uBAAuB;QAClDC,uBAAwB,EAAErD,MAAA,CAAAsD,qBAAqB;QAC/CC,gBAAgB,EAAEvD,MAAA,CAAAwD,cAAc;QAChCC,YAAY,EAAEzD,MAAA,CAAA0D;;;QAKrBhE,mBAAA,YAAe,EACfI,YAAA,CAyBcO,sBAAA;MAzBDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAuBM,CAvBNZ,mBAAA,CAuBM,OAvBNgE,UAuBM,GAtBJ7D,YAAA,CAqBE8D,8BAAA;QApBCC,MAAM,EAAE7D,MAAA,CAAA6D,MAAM;QACd,mBAAiB,EAAE7D,MAAA,CAAA8D,eAAe;QAClC,aAAW,EAAE9D,MAAA,CAAA+D,UAAU;QACvB,UAAQ,EAAE/D,MAAA,CAAAc,OAAO;QACjB,oBAAkB,EAAEd,MAAA,CAAAgE,iBAAiB;QACrC,iBAAe,EAAEhE,MAAA,CAAAiE,cAAc;QAC/B,cAAY,EAAEjE,MAAA,CAAAkE,WAAW;QACzB,WAAS,EAAElE,MAAA,CAAAmE,QAAQ;QACnBzD,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9ByD,UAAS,EAAEpE,MAAA,CAAAqE,QAAQ;QACnBC,UAAS,EAAEtE,MAAA,CAAAuE,QAAQ;QACnBC,aAAY,EAAExE,MAAA,CAAAyE,WAAW;QACzBC,aAAY,EAAE1E,MAAA,CAAA2E,WAAW;QACzBC,eAAe,EAAE5E,MAAA,CAAA6E,aAAa;QAC9BC,aAAa,EAAE9E,MAAA,CAAA+E,WAAW;QAC1BC,WAAW,EAAEhF,MAAA,CAAAiF,SAAS;QACtBC,aAAY,EAAElF,MAAA,CAAAmF,WAAW;QACzBC,yBAAyB,EAAEpF,MAAA,CAAAqF,uBAAuB;QAClDC,sBAAsB,EAAEtF,MAAA,CAAAuF,oBAAoB;QAC5CC,mBAAmB,EAAExF,MAAA,CAAAyF;;;;;uDAQlC/F,mBAAA,YAAe,EACfC,mBAAA,CA0BM,OA1BN+F,UA0BM,GAzBJ5F,YAAA,CAKE6F,oBAAA;IAJCC,IAAI,EAAE5F,MAAA,CAAAC,WAAW;IACjB4F,WAAU,EAAE7F,MAAA,CAAA6F,WAAW;IACvBC,UAAS,EAAE9F,MAAA,CAAA8F,UAAU;IACtBC,GAAG,EAAC;kEAGNrG,mBAAA,YAAe,EACJM,MAAA,CAAAc,OAAO,I,cAAlBtB,mBAAA,CAMM,OANNwG,UAMM,GALJlG,YAAA,CAIEmG,mBAAA;IAHCC,KAAK,EAAElG,MAAA,CAAAmG,aAAa;IACrBC,IAAI,EAAC,MAAM;IACX,WAAS,EAAT;6EAIJ1G,mBAAA,YAAe,EACJM,MAAA,CAAA2B,QAAQ,I,cAAnBnC,mBAAA,CAOM,OAPN6G,UAOM,GANJvG,YAAA,CAKEmG,mBAAA;IAJCC,KAAK,EAAElG,MAAA,CAAAsG,UAAU;IAClBF,IAAI,EAAC,MAAM;IACX,WAAS,EAAT,EAAS;IACRG,QAAQ,EAAE;+EAKjB7G,mBAAA,cAAiB,EACjBI,YAAA,CAmCY0G,oBAAA;gBAlCDxG,MAAA,CAAAyG,iBAAiB;+DAAjBzG,MAAA,CAAAyG,iBAAiB,GAAAvG,MAAA;IAC1BgG,KAAK,EAAC,OAAO;IACbQ,KAAK,EAAC;;IA4BKC,MAAM,EAAAC,QAAA,CACf,MAA4D,CAA5D9G,YAAA,CAA4D+G,oBAAA;MAAhDC,OAAK,EAAAC,MAAA,QAAAA,MAAA,MAAA7G,MAAA,IAAEF,MAAA,CAAAyG,iBAAiB;;wBAAU,MAAEM,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;QAChDjH,YAAA,CAAgE+G,oBAAA;MAArDT,IAAI,EAAC,SAAS;MAAEU,OAAK,EAAE9G,MAAA,CAAAwD;;wBAAgB,MAAEuD,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;;sBA5BtD,MAyBU,CAzBVjH,YAAA,CAyBUkH,kBAAA;MAzBAC,KAAK,EAAEjH,MAAA,CAAAkH,QAAQ;MAAE,aAAW,EAAC,MAAM;MAACC,IAAI,EAAC;;wBACjD,MAQe,CARfrH,YAAA,CAQesH,uBAAA;QARD9G,KAAK,EAAC;MAAM;0BACxB,MAMY,CANZR,YAAA,CAMYuH,oBAAA;sBANQrH,MAAA,CAAAkH,QAAQ,CAACd,IAAI;qEAAbpG,MAAA,CAAAkH,QAAQ,CAACd,IAAI,GAAAlG,MAAA;UAAEoH,KAAmB,EAAnB;YAAA;UAAA;;4BACjC,MAAwC,CAAxCxH,YAAA,CAAwCyH,oBAAA;YAA7BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA0CyH,oBAAA;YAA/BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA2CyH,oBAAA;YAAhCjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAAyCyH,oBAAA;YAA9BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA0CyH,oBAAA;YAA/BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;;;;;UAGlC1H,YAAA,CAOesH,uBAAA;QAPD9G,KAAK,EAAC;MAAM;0BACxB,MAKY,CALZR,YAAA,CAKYuH,oBAAA;sBALQrH,MAAA,CAAAkH,QAAQ,CAACO,KAAK;qEAAdzH,MAAA,CAAAkH,QAAQ,CAACO,KAAK,GAAAvH,MAAA;UAAEoH,KAAmB,EAAnB;YAAA;UAAA;;4BAClC,MAAqC,CAArCxH,YAAA,CAAqCyH,oBAAA;YAA1BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAAwCyH,oBAAA;YAA7BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAAsCyH,oBAAA;YAA3BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAA2CyH,oBAAA;YAAhCjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;;;;;UAGlC1H,YAAA,CAMesH,uBAAA;QAND9G,KAAK,EAAC;MAAM;0BACxB,MAIE,CAJFR,YAAA,CAIE4H,mBAAA;sBAHS1H,MAAA,CAAAkH,QAAQ,CAACS,WAAW;qEAApB3H,MAAA,CAAAkH,QAAQ,CAACS,WAAW,GAAAzH,MAAA;UAC7BkG,IAAI,EAAC,UAAU;UACdwB,IAAI,EAAE","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/e44bce26a32d19b3e8492f2dc6f41f59be0c24e0f666faeb083c262a8c95d996.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/e44bce26a32d19b3e8492f2dc6f41f59be0c24e0f666faeb083c262a8c95d996.json new file mode 100644 index 00000000..e9d1317b --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/e44bce26a32d19b3e8492f2dc6f41f59be0c24e0f666faeb083c262a8c95d996.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":";;EACOA,KAAK,EAAC;AAAkB;;EAEtBA,KAAK,EAAC;AAAY;;EAEhBA,KAAK,EAAC;AAAgB;;EAIhBA,KAAK,EAAC;AAAwB;;EAgB9BA,KAAK,EAAC;AAAwB;;EA8B9BA,KAAK,EAAC;AAAwB;;EA8BtCA,KAAK,EAAC;AAAe;;;EASJA,KAAK,EAAC;;;;EASLA,KAAK,EAAC;;;;;;;;;;;;;;;;;uBAtG/BC,mBAAA,CAqJM,OArJNC,UAqJM,GApJJC,mBAAA,YAAe,EACfC,mBAAA,CA+EM,OA/ENC,UA+EM,GA9EJF,mBAAA,eAAkB,EAClBC,mBAAA,CA4EM,OA5ENE,UA4EM,GA3EJC,YAAA,CA0EUC,kBAAA;gBA1EQC,MAAA,CAAAC,WAAW;+DAAXD,MAAA,CAAAC,WAAW,GAAAC,MAAA;IAAGC,UAAS,EAAEH,MAAA,CAAAI,cAAc;IAAE,cAAY,EAAC;;sBACtE,MAAe,CAAfV,mBAAA,YAAe,EACfI,YAAA,CAacO,sBAAA;MAbDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAWM,CAXNZ,mBAAA,CAWM,OAXNa,UAWM,GAVJV,YAAA,CASEW,0BAAA;QARCC,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9BC,cAAa,EAAEZ,MAAA,CAAAa,YAAY;QAC3B,UAAQ,EAAEb,MAAA,CAAAc,OAAO;QACjB,eAAa,EAAEd,MAAA,CAAAe,YAAY;QAC3B,aAAW,EAAEf,MAAA,CAAAgB,UAAU;QACvB,iBAAe,EAAEhB,MAAA,CAAAiB,aAAa;QAC9BC,uBAAuB,EAAElB,MAAA,CAAAmB,qBAAqB;QAC9CC,iBAAiB,EAAEpB,MAAA,CAAAqB;;;QAK1B3B,mBAAA,aAAgB,EAChBI,YAAA,CA2BcO,sBAAA;MA3BDC,KAAK,EAAC,OAAO;MAACC,IAAI,EAAC;;wBAC9B,MAyBM,CAzBNZ,mBAAA,CAyBM,OAzBN2B,UAyBM,GAxBJxB,YAAA,CAuBEyB,4BAAA;QAtBC,cAAY,EAAEvB,MAAA,CAAAwB,WAAW;QACzB,kBAAgB,EAAExB,MAAA,CAAAyB,cAAc;QAChC,qBAAmB,EAAEzB,MAAA,CAAA0B,iBAAiB;QACtC,WAAS,EAAE1B,MAAA,CAAA2B,QAAQ;QACnB,cAAY,EAAE3B,MAAA,CAAA4B,WAAW;QACzB,eAAa,EAAE5B,MAAA,CAAA6B,YAAY;QAC3B,oBAAkB,EAAE7B,MAAA,CAAA8B,iBAAiB;QACrC,mBAAiB,EAAE9B,MAAA,CAAA+B,eAAe;QAClC,gBAAc,EAAE/B,MAAA,CAAAgC,aAAa;QAC7BC,oBAAqB,EAAEjC,MAAA,CAAAkC,sBAAsB;QAC7CC,qBAAsB,EAAEnC,MAAA,CAAAoC,uBAAuB;QAC/CC,aAAa,EAAErC,MAAA,CAAAsC,WAAW;QAC1BC,YAAW,EAAEvC,MAAA,CAAAwC,UAAU;QACvBC,YAAW,EAAEzC,MAAA,CAAA0C,UAAU;QACvBC,UAAS,EAAE3C,MAAA,CAAA4C,QAAQ;QACnBC,eAAe,EAAE7C,MAAA,CAAA8C,aAAa;QAC9BC,uBAAuB,EAAE/C,MAAA,CAAAgD,qBAAqB;QAC9CC,oBAAoB,EAAEjD,MAAA,CAAAkD,kBAAkB;QACxCC,yBAAyB,EAAEnD,MAAA,CAAAoD,uBAAuB;QAClDC,uBAAwB,EAAErD,MAAA,CAAAsD,qBAAqB;QAC/CC,gBAAgB,EAAEvD,MAAA,CAAAwD,cAAc;QAChCC,YAAY,EAAEzD,MAAA,CAAA0D;;;QAKrBhE,mBAAA,YAAe,EACfI,YAAA,CAyBcO,sBAAA;MAzBDC,KAAK,EAAC,MAAM;MAACC,IAAI,EAAC;;wBAC7B,MAuBM,CAvBNZ,mBAAA,CAuBM,OAvBNgE,UAuBM,GAtBJ7D,YAAA,CAqBE8D,8BAAA;QApBCC,MAAM,EAAE7D,MAAA,CAAA6D,MAAM;QACd,mBAAiB,EAAE7D,MAAA,CAAA8D,eAAe;QAClC,aAAW,EAAE9D,MAAA,CAAA+D,UAAU;QACvB,UAAQ,EAAE/D,MAAA,CAAAc,OAAO;QACjB,oBAAkB,EAAEd,MAAA,CAAAgE,iBAAiB;QACrC,iBAAe,EAAEhE,MAAA,CAAAiE,cAAc;QAC/B,cAAY,EAAEjE,MAAA,CAAAkE,WAAW;QACzB,WAAS,EAAElE,MAAA,CAAAmE,QAAQ;QACnBzD,eAAe,EAAEV,MAAA,CAAAW,aAAa;QAC9ByD,UAAS,EAAEpE,MAAA,CAAAqE,QAAQ;QACnBC,UAAS,EAAEtE,MAAA,CAAAuE,QAAQ;QACnBC,aAAY,EAAExE,MAAA,CAAAyE,WAAW;QACzBC,aAAY,EAAE1E,MAAA,CAAA2E,WAAW;QACzBC,eAAe,EAAE5E,MAAA,CAAA6E,aAAa;QAC9BC,aAAa,EAAE9E,MAAA,CAAA+E,WAAW;QAC1BC,WAAW,EAAEhF,MAAA,CAAAiF,SAAS;QACtBC,aAAY,EAAElF,MAAA,CAAAmF,WAAW;QACzBC,yBAAyB,EAAEpF,MAAA,CAAAqF,uBAAuB;QAClDC,sBAAsB,EAAEtF,MAAA,CAAAuF,oBAAoB;QAC5CC,mBAAmB,EAAExF,MAAA,CAAAyF;;;;;uDAQlC/F,mBAAA,YAAe,EACfC,mBAAA,CA0BM,OA1BN+F,UA0BM,GAzBJ5F,YAAA,CAKE6F,oBAAA;IAJCC,IAAI,EAAE5F,MAAA,CAAAC,WAAW;IACjB4F,WAAU,EAAE7F,MAAA,CAAA6F,WAAW;IACvBC,UAAS,EAAE9F,MAAA,CAAA8F,UAAU;IACtBC,GAAG,EAAC;kEAGNrG,mBAAA,YAAe,EACJM,MAAA,CAAAc,OAAO,I,cAAlBtB,mBAAA,CAMM,OANNwG,UAMM,GALJlG,YAAA,CAIEmG,mBAAA;IAHCC,KAAK,EAAElG,MAAA,CAAAmG,aAAa;IACrBC,IAAI,EAAC,MAAM;IACX,WAAS,EAAT;6EAIJ1G,mBAAA,YAAe,EACJM,MAAA,CAAA2B,QAAQ,I,cAAnBnC,mBAAA,CAOM,OAPN6G,UAOM,GANJvG,YAAA,CAKEmG,mBAAA;IAJCC,KAAK,EAAElG,MAAA,CAAAsG,UAAU;IAClBF,IAAI,EAAC,MAAM;IACX,WAAS,EAAT,EAAS;IACRG,QAAQ,EAAE;+EAKjB7G,mBAAA,cAAiB,EACjBI,YAAA,CAmCY0G,oBAAA;gBAlCDxG,MAAA,CAAAyG,iBAAiB;+DAAjBzG,MAAA,CAAAyG,iBAAiB,GAAAvG,MAAA;IAC1BgG,KAAK,EAAC,OAAO;IACbQ,KAAK,EAAC;;IA4BKC,MAAM,EAAAC,QAAA,CACf,MAA4D,CAA5D9G,YAAA,CAA4D+G,oBAAA;MAAhDC,OAAK,EAAAC,MAAA,QAAAA,MAAA,MAAA7G,MAAA,IAAEF,MAAA,CAAAyG,iBAAiB;;wBAAU,MAAEM,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;QAChDjH,YAAA,CAAgE+G,oBAAA;MAArDT,IAAI,EAAC,SAAS;MAAEU,OAAK,EAAE9G,MAAA,CAAAwD;;wBAAgB,MAAEuD,MAAA,QAAAA,MAAA,O,iBAAF,IAAE,E;;;;sBA5BtD,MAyBU,CAzBVjH,YAAA,CAyBUkH,kBAAA;MAzBAC,KAAK,EAAEjH,MAAA,CAAAkH,QAAQ;MAAE,aAAW,EAAC,MAAM;MAACC,IAAI,EAAC;;wBACjD,MAQe,CARfrH,YAAA,CAQesH,uBAAA;QARD9G,KAAK,EAAC;MAAM;0BACxB,MAMY,CANZR,YAAA,CAMYuH,oBAAA;sBANQrH,MAAA,CAAAkH,QAAQ,CAACd,IAAI;qEAAbpG,MAAA,CAAAkH,QAAQ,CAACd,IAAI,GAAAlG,MAAA;UAAEoH,KAAmB,EAAnB;YAAA;UAAA;;4BACjC,MAAwC,CAAxCxH,YAAA,CAAwCyH,oBAAA;YAA7BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA0CyH,oBAAA;YAA/BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA2CyH,oBAAA;YAAhCjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAAyCyH,oBAAA;YAA9BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;cAC9B1H,YAAA,CAA0CyH,oBAAA;YAA/BjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;;;;;UAGlC1H,YAAA,CAOesH,uBAAA;QAPD9G,KAAK,EAAC;MAAM;0BACxB,MAKY,CALZR,YAAA,CAKYuH,oBAAA;sBALQrH,MAAA,CAAAkH,QAAQ,CAACO,KAAK;qEAAdzH,MAAA,CAAAkH,QAAQ,CAACO,KAAK,GAAAvH,MAAA;UAAEoH,KAAmB,EAAnB;YAAA;UAAA;;4BAClC,MAAqC,CAArCxH,YAAA,CAAqCyH,oBAAA;YAA1BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAAwCyH,oBAAA;YAA7BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAAsCyH,oBAAA;YAA3BjH,KAAK,EAAC,KAAK;YAACkH,KAAK,EAAC;cAC7B1H,YAAA,CAA2CyH,oBAAA;YAAhCjH,KAAK,EAAC,MAAM;YAACkH,KAAK,EAAC;;;;;UAGlC1H,YAAA,CAMesH,uBAAA;QAND9G,KAAK,EAAC;MAAM;0BACxB,MAIE,CAJFR,YAAA,CAIE4H,mBAAA;sBAHS1H,MAAA,CAAAkH,QAAQ,CAACS,WAAW;qEAApB3H,MAAA,CAAAkH,QAAQ,CAACS,WAAW,GAAAzH,MAAA;UAC7BkG,IAAI,EAAC,UAAU;UACdwB,IAAI,EAAE","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f0d9e5c7bb81284a5566ffc4c87e6d0b62cad07a3de458aa594bbfd86a386ff8.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f0d9e5c7bb81284a5566ffc4c87e6d0b62cad07a3de458aa594bbfd86a386ff8.json new file mode 100644 index 00000000..07f3afa2 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f0d9e5c7bb81284a5566ffc4c87e6d0b62cad07a3de458aa594bbfd86a386ff8.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f38b3b8fe2d2d91f9bcae97d8b3e818e9b63d752713549a1bd4f78f13c93d7d9.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f38b3b8fe2d2d91f9bcae97d8b3e818e9b63d752713549a1bd4f78f13c93d7d9.json new file mode 100644 index 00000000..ad10ae65 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f38b3b8fe2d2d91f9bcae97d8b3e818e9b63d752713549a1bd4f78f13c93d7d9.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) return;\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","setDrawMode","mode","info","options","strokeColor","strokeWeight","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","radius","getRadius","path","getPath","bounds","getBounds","find","z","setOptions","strokeOpacity","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","ElMessageBox","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f8dfa9c1ea9308abec2bb73d80cc9f92faac76376abae0b390df6f5537b3b4a9.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f8dfa9c1ea9308abec2bb73d80cc9f92faac76376abae0b390df6f5537b3b4a9.json new file mode 100644 index 00000000..4e7bff4e --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/f8dfa9c1ea9308abec2bb73d80cc9f92faac76376abae0b390df6f5537b3b4a9.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\";\nconst _hoisted_1 = {\n class: \"unified-map-view\"\n};\nconst _hoisted_2 = {\n class: \"side-panel\"\n};\nconst _hoisted_3 = {\n class: \"tabs-container\"\n};\nconst _hoisted_4 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_5 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_6 = {\n class: \"panel-scroll-container\"\n};\nconst _hoisted_7 = {\n class: \"map-container\"\n};\nconst _hoisted_8 = {\n key: 0,\n class: \"add-mode-tip\"\n};\nconst _hoisted_9 = {\n key: 1,\n class: \"draw-tip\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_basic_map_panel = _resolveComponent(\"basic-map-panel\");\n const _component_el_tab_pane = _resolveComponent(\"el-tab-pane\");\n const _component_threat_zone_panel = _resolveComponent(\"threat-zone-panel\");\n const _component_path_planning_panel = _resolveComponent(\"path-planning-panel\");\n const _component_el_tabs = _resolveComponent(\"el-tabs\");\n const _component_SharedMap = _resolveComponent(\"SharedMap\");\n const _component_el_alert = _resolveComponent(\"el-alert\");\n const _component_el_option = _resolveComponent(\"el-option\");\n const _component_el_select = _resolveComponent(\"el-select\");\n const _component_el_form_item = _resolveComponent(\"el-form-item\");\n const _component_el_input = _resolveComponent(\"el-input\");\n const _component_el_form = _resolveComponent(\"el-form\");\n const _component_el_button = _resolveComponent(\"el-button\");\n const _component_el_dialog = _resolveComponent(\"el-dialog\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createCommentVNode(\" 左侧功能面板 \"), _createElementVNode(\"div\", _hoisted_2, [_createCommentVNode(\" 选项卡切换功能面板 \"), _createElementVNode(\"div\", _hoisted_3, [_createVNode(_component_el_tabs, {\n modelValue: $setup.activePanel,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = $event => $setup.activePanel = $event),\n onTabClick: $setup.handleTabClick,\n \"tab-position\": \"top\"\n }, {\n default: _withCtx(() => [_createCommentVNode(\" 地图基础功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"地图视图\",\n name: \"basicMap\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_4, [_createVNode(_component_basic_map_panel, {\n onToggleAddMode: $setup.toggleAddMode,\n onClearTargets: $setup.clearTargets,\n \"add-mode\": $setup.addMode,\n \"target-points\": $setup.targetPoints,\n \"show-drones\": $setup.showDrones,\n \"show-drone-info\": $setup.showDroneInfo,\n onToggleDroneVisibility: $setup.toggleDroneVisibility,\n onToggleDroneInfo: $setup.toggleDroneInfo\n }, null, 8 /* PROPS */, [\"onToggleAddMode\", \"onClearTargets\", \"add-mode\", \"target-points\", \"show-drones\", \"show-drone-info\", \"onToggleDroneVisibility\", \"onToggleDroneInfo\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 威胁区设置功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"威胁区设置\",\n name: \"threatZone\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_5, [_createVNode(_component_threat_zone_panel, {\n \"threat-zones\": $setup.threatZones,\n \"selected-zone-id\": $setup.selectedZoneId,\n \"current-threat-type\": $setup.currentThreatType,\n \"draw-mode\": $setup.drawMode,\n \"threat-level\": $setup.threatLevel,\n \"circle-radius\": $setup.circleRadius,\n \"threat-description\": $setup.threatDescription,\n \"threat-time-range\": $setup.threatTimeRange,\n \"visible-layers\": $setup.visibleLayers,\n onOnThreatTypeChange: $setup.handleThreatTypeChange,\n onOnThreatLevelChange: $setup.handleThreatLevelChange,\n onSetDrawMode: $setup.setDrawMode,\n onSelectZone: $setup.selectZone,\n onDeleteZone: $setup.deleteZone,\n onEditZone: $setup.editZone,\n onClearAllZones: $setup.clearAllZones,\n onUpdateLayerVisibility: $setup.updateLayerVisibility,\n onUpdateCircleRadius: $setup.updateCircleRadius,\n onUpdateThreatDescription: $setup.updateThreatDescription,\n onUpdateThreatTimeRange: $setup.updateThreatTimeRange,\n onSaveEditedZone: $setup.saveEditedZone,\n onFitToZones: $setup.fitToZones\n }, null, 8 /* PROPS */, [\"threat-zones\", \"selected-zone-id\", \"current-threat-type\", \"draw-mode\", \"threat-level\", \"circle-radius\", \"threat-description\", \"threat-time-range\", \"visible-layers\", \"onOnThreatTypeChange\", \"onOnThreatLevelChange\", \"onSetDrawMode\", \"onSelectZone\", \"onDeleteZone\", \"onEditZone\", \"onClearAllZones\", \"onUpdateLayerVisibility\", \"onUpdateCircleRadius\", \"onUpdateThreatDescription\", \"onUpdateThreatTimeRange\", \"onSaveEditedZone\", \"onFitToZones\"])])]),\n _: 1 /* STABLE */\n }), _createCommentVNode(\" 路径规划功能 \"), _createVNode(_component_el_tab_pane, {\n label: \"路径规划\",\n name: \"pathPlanning\"\n }, {\n default: _withCtx(() => [_createElementVNode(\"div\", _hoisted_6, [_createVNode(_component_path_planning_panel, {\n drones: $setup.drones,\n \"selected-drone-id\": $setup.selectedDroneId,\n \"path-points\": $setup.pathPoints,\n \"add-mode\": $setup.addMode,\n \"planning-algorithm\": $setup.planningAlgorithm,\n \"flight-altitude\": $setup.flightAltitude,\n \"flight-speed\": $setup.flightSpeed,\n \"path-info\": $setup.pathInfo,\n onToggleAddMode: $setup.toggleAddMode,\n onClearAll: $setup.clearAll,\n onPlanPath: $setup.planPath,\n onExecutePath: $setup.executePath,\n onRemovePoint: $setup.removePoint,\n onCenterToStart: $setup.centerToStart,\n onCenterToEnd: $setup.centerToEnd,\n onFitToPath: $setup.fitToPath,\n onSelectDrone: $setup.selectDrone,\n onUpdatePlanningAlgorithm: $setup.updatePlanningAlgorithm,\n onUpdateFlightAltitude: $setup.updateFlightAltitude,\n onUpdateFlightSpeed: $setup.updateFlightSpeed\n }, null, 8 /* PROPS */, [\"drones\", \"selected-drone-id\", \"path-points\", \"add-mode\", \"planning-algorithm\", \"flight-altitude\", \"flight-speed\", \"path-info\", \"onToggleAddMode\", \"onClearAll\", \"onPlanPath\", \"onExecutePath\", \"onRemovePoint\", \"onCenterToStart\", \"onCenterToEnd\", \"onFitToPath\", \"onSelectDrone\", \"onUpdatePlanningAlgorithm\", \"onUpdateFlightAltitude\", \"onUpdateFlightSpeed\"])])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\", \"onTabClick\"])])]), _createCommentVNode(\" 右侧地图区域 \"), _createElementVNode(\"div\", _hoisted_7, [_createVNode(_component_SharedMap, {\n mode: $setup.activePanel,\n onMapLoaded: $setup.onMapLoaded,\n onMapClick: $setup.onMapClick,\n ref: \"sharedMapRef\"\n }, null, 8 /* PROPS */, [\"mode\", \"onMapLoaded\", \"onMapClick\"]), _createCommentVNode(\" 添加模式提示 \"), $setup.addMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createVNode(_component_el_alert, {\n title: $setup.getAddModeTip(),\n type: \"info\",\n \"show-icon\": \"\"\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true), _createCommentVNode(\" 绘制工具提示 \"), $setup.drawMode ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [_createVNode(_component_el_alert, {\n title: $setup.getDrawTip(),\n type: \"info\",\n \"show-icon\": \"\",\n closable: false\n }, null, 8 /* PROPS */, [\"title\"])])) : _createCommentVNode(\"v-if\", true)]), _createCommentVNode(\" 编辑威胁区对话框 \"), _createVNode(_component_el_dialog, {\n modelValue: $setup.editDialogVisible,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = $event => $setup.editDialogVisible = $event),\n title: \"编辑威胁区\",\n width: \"400px\"\n }, {\n footer: _withCtx(() => [_createVNode(_component_el_button, {\n onClick: _cache[4] || (_cache[4] = $event => $setup.editDialogVisible = false)\n }, {\n default: _withCtx(() => _cache[6] || (_cache[6] = [_createTextVNode(\"取消\")])),\n _: 1 /* STABLE */,\n __: [6]\n }), _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: $setup.saveEditedZone\n }, {\n default: _withCtx(() => _cache[7] || (_cache[7] = [_createTextVNode(\"保存\")])),\n _: 1 /* STABLE */,\n __: [7]\n }, 8 /* PROPS */, [\"onClick\"])]),\n default: _withCtx(() => [_createVNode(_component_el_form, {\n model: $setup.editForm,\n \"label-width\": \"80px\",\n size: \"small\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_form_item, {\n label: \"威胁类型\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.type,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.editForm.type = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"雷达威胁\",\n value: \"radar\"\n }), _createVNode(_component_el_option, {\n label: \"导弹威胁\",\n value: \"missile\"\n }), _createVNode(_component_el_option, {\n label: \"空中威胁\",\n value: \"aircraft\"\n }), _createVNode(_component_el_option, {\n label: \"地面威胁\",\n value: \"ground\"\n }), _createVNode(_component_el_option, {\n label: \"气象威胁\",\n value: \"weather\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁等级\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_select, {\n modelValue: $setup.editForm.level,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => $setup.editForm.level = $event),\n style: {\n \"width\": \"100%\"\n }\n }, {\n default: _withCtx(() => [_createVNode(_component_el_option, {\n label: \"低威胁\",\n value: \"low\"\n }), _createVNode(_component_el_option, {\n label: \"中威胁\",\n value: \"medium\"\n }), _createVNode(_component_el_option, {\n label: \"高威胁\",\n value: \"high\"\n }), _createVNode(_component_el_option, {\n label: \"极高威胁\",\n value: \"critical\"\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n }), _createVNode(_component_el_form_item, {\n label: \"威胁描述\"\n }, {\n default: _withCtx(() => [_createVNode(_component_el_input, {\n modelValue: $setup.editForm.description,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = $event => $setup.editForm.description = $event),\n type: \"textarea\",\n rows: 3\n }, null, 8 /* PROPS */, [\"modelValue\"])]),\n _: 1 /* STABLE */\n })]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"model\"])]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"modelValue\"])]);\n}","map":{"version":3,"names":["class","_createElementBlock","_hoisted_1","_createCommentVNode","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_el_tabs","$setup","activePanel","$event","onTabClick","handleTabClick","_component_el_tab_pane","label","name","_hoisted_4","_component_basic_map_panel","onToggleAddMode","toggleAddMode","onClearTargets","clearTargets","addMode","targetPoints","showDrones","showDroneInfo","onToggleDroneVisibility","toggleDroneVisibility","onToggleDroneInfo","toggleDroneInfo","_hoisted_5","_component_threat_zone_panel","threatZones","selectedZoneId","currentThreatType","drawMode","threatLevel","circleRadius","threatDescription","threatTimeRange","visibleLayers","onOnThreatTypeChange","handleThreatTypeChange","onOnThreatLevelChange","handleThreatLevelChange","onSetDrawMode","setDrawMode","onSelectZone","selectZone","onDeleteZone","deleteZone","onEditZone","editZone","onClearAllZones","clearAllZones","onUpdateLayerVisibility","updateLayerVisibility","onUpdateCircleRadius","updateCircleRadius","onUpdateThreatDescription","updateThreatDescription","onUpdateThreatTimeRange","updateThreatTimeRange","onSaveEditedZone","saveEditedZone","onFitToZones","fitToZones","_hoisted_6","_component_path_planning_panel","drones","selectedDroneId","pathPoints","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","onClearAll","clearAll","onPlanPath","planPath","onExecutePath","executePath","onRemovePoint","removePoint","onCenterToStart","centerToStart","onCenterToEnd","centerToEnd","onFitToPath","fitToPath","onSelectDrone","selectDrone","onUpdatePlanningAlgorithm","updatePlanningAlgorithm","onUpdateFlightAltitude","updateFlightAltitude","onUpdateFlightSpeed","updateFlightSpeed","_hoisted_7","_component_SharedMap","mode","onMapLoaded","onMapClick","ref","_hoisted_8","_component_el_alert","title","getAddModeTip","type","_hoisted_9","getDrawTip","closable","_component_el_dialog","editDialogVisible","width","footer","_withCtx","_component_el_button","onClick","_cache","_component_el_form","model","editForm","size","_component_el_form_item","_component_el_select","style","_component_el_option","value","level","_component_el_input","description","rows"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/fd6005d79d7598ab842b457915b0109c26f1f1bd751c17600530a085b28b6b39.json b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/fd6005d79d7598ab842b457915b0109c26f1f1bd751c17600530a085b28b6b39.json new file mode 100644 index 00000000..20e71da8 --- /dev/null +++ b/Src/command_center/web-command-center/frontend/node_modules/.cache/babel-loader/fd6005d79d7598ab842b457915b0109c26f1f1bd751c17600530a085b28b6b39.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ref, onMounted, inject, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { ElMessage, ElMessageBox } from 'element-plus';\nimport SharedMap from '../components/SharedMap.vue';\nimport BasicMapPanel from '../components/map-panels/BasicMapPanel.vue';\nimport ThreatZonePanel from '../components/map-panels/ThreatZonePanel.vue';\nimport PathPlanningPanel from '../components/map-panels/PathPlanningPanel.vue';\nexport default {\n name: 'UnifiedMapView',\n components: {\n SharedMap,\n BasicMapPanel,\n ThreatZonePanel,\n PathPlanningPanel\n },\n setup() {\n const store = useStore();\n const sharedMapRef = ref(null);\n\n // 活动面板\n const activePanel = ref('basicMap');\n\n // 地图实例\n const mapInstance = ref(null);\n\n // 通用状态\n const addMode = ref(false);\n const showDrones = ref(true);\n const showDroneInfo = ref(false);\n\n // 地图视图相关状态\n const targetPoints = ref([]);\n const targetMarkers = ref([]);\n\n // 威胁区相关状态\n const threatZones = ref([]);\n const zoneOverlays = ref({});\n const drawMode = ref(null);\n const currentThreatType = ref('radar');\n const threatLevel = ref('medium');\n const circleRadius = ref(1000);\n const threatDescription = ref('');\n const threatTimeRange = ref([new Date(), new Date(Date.now() + 24 * 60 * 60 * 1000)]);\n const selectedZoneId = ref(null);\n const visibleLayers = ref(['radar', 'missile', 'aircraft', 'ground', 'weather']);\n const editDialogVisible = ref(false);\n const editForm = ref({\n id: null,\n type: 'radar',\n level: 'medium',\n description: '',\n geometry: null\n });\n\n // 路径规划相关状态\n const drones = computed(() => store.state.drones || []);\n const selectedDroneId = ref(null);\n const pathPoints = ref([]);\n const pathMarkers = ref([]);\n const pathLine = ref(null);\n const planningAlgorithm = ref('straight');\n const flightAltitude = ref(100);\n const flightSpeed = ref(10);\n const pathInfo = ref(null);\n\n // 绘制工具相关\n const mouseTool = ref(null);\n const droneMarkers = ref({});\n\n // 安全的 base64 编码函数\n const safeBase64Encode = str => {\n try {\n return btoa(unescape(encodeURIComponent(str)));\n } catch (error) {\n console.warn('Base64编码失败:', error);\n return btoa(str);\n }\n };\n\n // 威胁类型配置\n const threatTypeConfig = {\n radar: {\n name: '雷达威胁',\n color: '#FF6B6B'\n },\n missile: {\n name: '导弹威胁',\n color: '#FF4757'\n },\n aircraft: {\n name: '空中威胁',\n color: '#5352ED'\n },\n ground: {\n name: '地面威胁',\n color: '#20BF6B'\n },\n weather: {\n name: '气象威胁',\n color: '#A55EEA'\n }\n };\n\n // 威胁等级配置\n const threatLevelConfig = {\n low: {\n name: '低威胁',\n opacity: 0.3\n },\n medium: {\n name: '中威胁',\n opacity: 0.5\n },\n high: {\n name: '高威胁',\n opacity: 0.7\n },\n critical: {\n name: '极高威胁',\n opacity: 0.9\n }\n };\n\n // 地图加载后回调\n const onMapLoaded = map => {\n mapInstance.value = map;\n console.log('统一地图组件加载完成');\n\n // 初始化鼠标工具\n const AMap = window.AMap;\n if (AMap) {\n mouseTool.value = new AMap.MouseTool(map);\n mouseTool.value.on('draw', onDrawComplete);\n }\n\n // 根据当前活动面板初始化功能\n initActivePanelFeatures();\n\n // 初始化无人机标记\n initDroneMarkers();\n };\n\n // 初始化当前面板的功能\n const initActivePanelFeatures = () => {\n switch (activePanel.value) {\n case 'basicMap':\n // 初始化地图基础功能\n break;\n case 'threatZone':\n // 初始化威胁区功能\n loadThreatZones();\n break;\n case 'pathPlanning':\n // 初始化路径规划功能\n if (drones.value.length > 0 && !selectedDroneId.value) {\n selectedDroneId.value = drones.value[0].id;\n }\n break;\n }\n };\n\n // 地图点击事件处理\n const onMapClick = e => {\n const {\n lng,\n lat\n } = e.lnglat;\n if (activePanel.value === 'basicMap' && addMode.value) {\n // 地图视图 - 添加目标点\n addTargetPoint(lng, lat);\n } else if (activePanel.value === 'pathPlanning' && addMode.value) {\n // 路径规划 - 添加路径点\n addPathPoint(lng, lat);\n }\n // 威胁区绘制通过mouseTool处理\n };\n\n // 切换标签页\n const handleTabClick = () => {\n // 重置通用状态\n addMode.value = false;\n drawMode.value = null;\n\n // 停止鼠标工具\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n\n // 初始化当前面板的功能\n initActivePanelFeatures();\n };\n\n // --- 通用功能 ---\n\n // 切换添加模式\n const toggleAddMode = () => {\n addMode.value = !addMode.value;\n // 如果是威胁区模式,退出绘制模式\n if (activePanel.value === 'threatZone') {\n drawMode.value = null;\n if (mouseTool.value) {\n mouseTool.value.close(true);\n }\n }\n };\n\n // 初始化无人机标记\n const initDroneMarkers = async () => {\n if (!mapInstance.value) return;\n try {\n // 获取无人机数据\n await store.dispatch('fetchDrones');\n const AMap = window.AMap;\n if (!AMap || !drones.value || drones.value.length === 0) {\n console.log('跳过无人机标记初始化:条件不满足');\n return;\n }\n\n // 清除现有标记\n Object.values(droneMarkers.value).forEach(marker => {\n mapInstance.value.remove(marker);\n });\n droneMarkers.value = {};\n drones.value.forEach(drone => {\n if (!drone || typeof drone.longitude !== 'number' || typeof drone.latitude !== 'number') {\n console.warn('无效的无人机数据:', drone);\n return;\n }\n try {\n const marker = new AMap.Marker({\n position: [drone.longitude, drone.latitude],\n title: drone.name || `无人机-${drone.id}`,\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: getDroneIconSvg(drone.status),\n imageSize: new AMap.Size(32, 32)\n })\n });\n\n // 添加信息窗体\n const infoWindow = new AMap.InfoWindow({\n isCustom: true,\n content: `\n
\n

${drone.name || `无人机-${drone.id}`}

\n

状态: ${getStatusText(drone.status)}

\n

电量: ${drone.battery || 0}%

\n

位置: ${drone.longitude.toFixed(6)}, ${drone.latitude.toFixed(6)}

\n
\n `,\n offset: new AMap.Pixel(16, -45)\n });\n marker.on('click', () => {\n try {\n infoWindow.open(mapInstance.value, marker.getPosition());\n } catch (infoError) {\n console.warn('信息窗体打开失败:', infoError);\n }\n });\n droneMarkers.value[drone.id] = marker;\n if (showDrones.value) {\n mapInstance.value.add(marker);\n }\n } catch (markerError) {\n console.warn(`无人机 ${drone.id} 标记创建失败:`, markerError);\n }\n });\n } catch (error) {\n console.warn('无人机标记初始化出错:', error);\n\n // 使用示例数据作为备用\n const sampleDrones = [{\n id: 1,\n name: '侦察无人机-01',\n latitude: 39.9042,\n longitude: 116.4074,\n status: 'active',\n battery: 85\n }, {\n id: 2,\n name: '运输无人机-02',\n latitude: 39.9100,\n longitude: 116.4200,\n status: 'idle',\n battery: 60\n }];\n store.commit('setDrones', sampleDrones);\n }\n };\n const getDroneIconSvg = status => {\n const colors = {\n active: '#52C41A',\n idle: '#1890FF',\n error: '#FF4D4F'\n };\n const color = colors[status] || colors.idle;\n const svgString = `\n \n \n \n \n `;\n return 'data:image/svg+xml;base64,' + safeBase64Encode(svgString);\n };\n const getStatusText = status => {\n const statusMap = {\n active: '活动中',\n idle: '待机',\n error: '故障'\n };\n return statusMap[status] || status;\n };\n\n // 切换无人机显示\n const toggleDroneVisibility = value => {\n showDrones.value = value;\n Object.values(droneMarkers.value).forEach(marker => {\n if (value) {\n mapInstance.value.add(marker);\n } else {\n mapInstance.value.remove(marker);\n }\n });\n };\n\n // 切换无人机信息显示\n const toggleDroneInfo = value => {\n showDroneInfo.value = value;\n // 这里可以实现切换信息详细程度的逻辑\n };\n\n // 获取添加模式提示\n const getAddModeTip = () => {\n if (activePanel.value === 'basicMap') {\n return '点击地图添加目标点';\n } else if (activePanel.value === 'pathPlanning') {\n return '点击地图添加路径点';\n }\n return '';\n };\n\n // --- 地图视图功能 ---\n\n // 添加目标点\n const addTargetPoint = (lng, lat) => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n\n // 创建目标点标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(32, 32),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n \n \n `),\n imageSize: new AMap.Size(32, 32)\n }),\n title: `Target (${lng.toFixed(6)}, ${lat.toFixed(6)})`\n });\n\n // 添加点击事件\n marker.on('click', () => {\n ElMessage({\n message: `目标点坐标: ${lng.toFixed(6)}, ${lat.toFixed(6)}`,\n type: 'info'\n });\n });\n mapInstance.value.add(marker);\n targetMarkers.value.push(marker);\n targetPoints.value.push({\n lng,\n lat\n });\n ElMessage.success(`已添加目标点: ${lng.toFixed(6)}, ${lat.toFixed(6)}`);\n };\n\n // 清除所有目标点\n const clearTargets = () => {\n targetMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n targetMarkers.value = [];\n targetPoints.value = [];\n ElMessage.success('已清除所有目标点');\n };\n\n // --- 威胁区功能 ---\n\n // 获取绘制提示\n const getDrawTip = () => {\n if (drawMode.value === 'circle') {\n return '点击地图确定威胁区圆心,拖动确定半径';\n } else if (drawMode.value === 'polygon') {\n return '点击添加多边形顶点,双击结束绘制';\n } else if (drawMode.value === 'rectangle') {\n return '点击并拖动绘制矩形区域';\n }\n return '';\n };\n\n // 处理威胁类型变化\n const handleThreatTypeChange = type => {\n currentThreatType.value = type;\n };\n\n // 处理威胁等级变化\n const handleThreatLevelChange = level => {\n threatLevel.value = level;\n };\n\n // 更新圆形半径\n const updateCircleRadius = radius => {\n circleRadius.value = radius;\n };\n\n // 更新威胁描述\n const updateThreatDescription = desc => {\n threatDescription.value = desc;\n };\n\n // 更新威胁时间范围\n const updateThreatTimeRange = range => {\n threatTimeRange.value = range;\n };\n\n // 设置绘制模式\n const setDrawMode = mode => {\n if (!mouseTool.value) return;\n if (drawMode.value === mode) {\n // 取消绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.info('已取消绘制模式');\n return;\n }\n drawMode.value = mode;\n addMode.value = false;\n\n // 开始绘制\n const options = {\n strokeColor: threatTypeConfig[currentThreatType.value].color,\n strokeWeight: 2,\n fillColor: threatTypeConfig[currentThreatType.value].color,\n fillOpacity: threatLevelConfig[threatLevel.value].opacity\n };\n switch (mode) {\n case 'circle':\n mouseTool.value.circle(options);\n break;\n case 'polygon':\n mouseTool.value.polygon(options);\n break;\n case 'rectangle':\n mouseTool.value.rectangle(options);\n break;\n }\n ElMessage.info(getDrawTip());\n };\n\n // 绘制完成事件\n const onDrawComplete = event => {\n const overlay = event.obj;\n\n // 创建威胁区数据\n const zone = {\n id: Date.now(),\n type: currentThreatType.value,\n level: threatLevel.value,\n description: threatDescription.value,\n timeRange: threatTimeRange.value,\n geometry: getGeometryFromOverlay(overlay),\n overlay: overlay\n };\n\n // 添加到威胁区列表\n threatZones.value.push(zone);\n zoneOverlays.value[zone.id] = overlay;\n\n // 添加点击事件\n overlay.on('click', () => selectZone(zone.id));\n\n // 重置绘制模式\n drawMode.value = null;\n mouseTool.value.close(true);\n ElMessage.success(`已创建${threatTypeConfig[currentThreatType.value].name}区域`);\n };\n const getGeometryFromOverlay = overlay => {\n if (overlay.CLASS_NAME === 'AMap.Circle') {\n return {\n type: 'circle',\n center: overlay.getCenter(),\n radius: overlay.getRadius()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Polygon') {\n return {\n type: 'polygon',\n path: overlay.getPath()\n };\n } else if (overlay.CLASS_NAME === 'AMap.Rectangle') {\n return {\n type: 'rectangle',\n bounds: overlay.getBounds()\n };\n }\n return null;\n };\n\n // 加载威胁区\n const loadThreatZones = () => {\n // 这里可以从API获取威胁区数据\n // 目前暂时留空,等后续需要时实现\n };\n\n // 选择威胁区\n const selectZone = id => {\n selectedZoneId.value = id;\n const zone = threatZones.value.find(z => z.id === id);\n if (zone && zone.overlay) {\n // 高亮选中的威胁区\n zone.overlay.setOptions({\n strokeWeight: 4,\n strokeOpacity: 1\n });\n\n // 取消其他威胁区的高亮\n threatZones.value.forEach(z => {\n if (z.id !== id && z.overlay) {\n z.overlay.setOptions({\n strokeWeight: 2,\n strokeOpacity: 0.8\n });\n }\n });\n }\n };\n\n // 删除威胁区\n const deleteZone = id => {\n const overlay = zoneOverlays.value[id];\n if (overlay) {\n mapInstance.value.remove(overlay);\n delete zoneOverlays.value[id];\n }\n threatZones.value = threatZones.value.filter(zone => zone.id !== id);\n if (selectedZoneId.value === id) {\n selectedZoneId.value = null;\n }\n ElMessage.success('威胁区已删除');\n };\n\n // 编辑威胁区\n const editZone = zone => {\n editForm.value = {\n ...zone\n };\n editDialogVisible.value = true;\n };\n\n // 保存编辑的威胁区\n const saveEditedZone = () => {\n const zone = threatZones.value.find(z => z.id === editForm.value.id);\n if (zone) {\n zone.type = editForm.value.type;\n zone.level = editForm.value.level;\n zone.description = editForm.value.description;\n\n // 更新覆盖物样式\n if (zone.overlay) {\n zone.overlay.setOptions({\n strokeColor: threatTypeConfig[zone.type].color,\n fillColor: threatTypeConfig[zone.type].color,\n fillOpacity: threatLevelConfig[zone.level].opacity\n });\n }\n ElMessage.success('威胁区已更新');\n }\n editDialogVisible.value = false;\n };\n\n // 清除所有威胁区\n const clearAllZones = () => {\n Object.values(zoneOverlays.value).forEach(overlay => {\n mapInstance.value.remove(overlay);\n });\n threatZones.value = [];\n zoneOverlays.value = {};\n selectedZoneId.value = null;\n ElMessage.success('已清除所有威胁区');\n };\n\n // 更新图层可见性\n const updateLayerVisibility = layers => {\n visibleLayers.value = layers;\n\n // 更新威胁区显示\n threatZones.value.forEach(zone => {\n if (zone.overlay) {\n if (layers.includes(zone.type)) {\n mapInstance.value.add(zone.overlay);\n } else {\n mapInstance.value.remove(zone.overlay);\n }\n }\n });\n };\n\n // 适合威胁区\n const fitToZones = () => {\n if (threatZones.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n threatZones.value.forEach(zone => {\n if (zone.overlay && zone.overlay.getBounds) {\n bounds.extend(zone.overlay.getBounds());\n } else if (zone.geometry?.center) {\n bounds.extend(zone.geometry.center);\n }\n });\n mapInstance.value.setBounds(bounds);\n };\n\n // --- 路径规划功能 ---\n\n // 添加路径点\n const addPathPoint = (lng, lat) => {\n if (!addMode.value || !mapInstance.value) return;\n const AMap = window.AMap;\n const pointIndex = pathPoints.value.length + 1;\n\n // 添加路径点\n pathPoints.value.push({\n lng,\n lat\n });\n\n // 创建标记\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${pointIndex}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${pointIndex}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n\n // 如果有多个点,绘制路径线\n if (pathPoints.value.length > 1) {\n updatePathLine();\n }\n ElMessage.success(`已添加路径点${pointIndex}`);\n };\n const updatePathLine = () => {\n if (!mapInstance.value) return;\n const AMap = window.AMap;\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n }\n const path = pathPoints.value.map(p => [p.lng, p.lat]);\n pathLine.value = new AMap.Polyline({\n path: path,\n strokeColor: '#1890FF',\n strokeWeight: 4,\n strokeStyle: 'solid'\n });\n mapInstance.value.add(pathLine.value);\n };\n\n // 移除路径点\n const removePoint = index => {\n pathPoints.value.splice(index, 1);\n\n // 重新绘制标记和路径\n clearPathMarkers();\n pathPoints.value.forEach((point, i) => {\n addPathPointMarker(point.lng, point.lat, i + 1);\n });\n if (pathPoints.value.length > 1) {\n updatePathLine();\n } else if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n\n // 重置路径信息\n pathInfo.value = null;\n };\n const addPathPointMarker = (lng, lat, index) => {\n const AMap = window.AMap;\n const marker = new AMap.Marker({\n position: [lng, lat],\n icon: new AMap.Icon({\n size: new AMap.Size(30, 30),\n image: 'data:image/svg+xml;base64,' + safeBase64Encode(`\n \n \n ${index}\n \n `),\n imageSize: new AMap.Size(30, 30)\n }),\n title: `路径点${index}`\n });\n mapInstance.value.add(marker);\n pathMarkers.value.push(marker);\n };\n const clearPathMarkers = () => {\n pathMarkers.value.forEach(marker => {\n mapInstance.value.remove(marker);\n });\n pathMarkers.value = [];\n };\n\n // 规划路径\n const planPath = async () => {\n if (pathPoints.value.length < 2) {\n ElMessage.warning('至少需要2个路径点');\n return;\n }\n try {\n // 模拟路径规划计算\n const distance = calculateDistance();\n const duration = Math.ceil(distance / (flightSpeed.value * 1000 / 60)); // 分钟\n\n pathInfo.value = {\n distance: Math.round(distance),\n duration: duration,\n pointCount: pathPoints.value.length\n };\n ElMessage.success('路径规划完成');\n } catch (error) {\n ElMessage.error('路径规划失败');\n }\n };\n const calculateDistance = () => {\n let totalDistance = 0;\n for (let i = 0; i < pathPoints.value.length - 1; i++) {\n const p1 = pathPoints.value[i];\n const p2 = pathPoints.value[i + 1];\n totalDistance += getDistance(p1.lat, p1.lng, p2.lat, p2.lng);\n }\n return totalDistance;\n };\n const getDistance = (lat1, lng1, lat2, lng2) => {\n const R = 6371e3;\n const φ1 = lat1 * Math.PI / 180;\n const φ2 = lat2 * Math.PI / 180;\n const Δφ = (lat2 - lat1) * Math.PI / 180;\n const Δλ = (lng2 - lng1) * Math.PI / 180;\n const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n };\n\n // 执行路径\n const executePath = async () => {\n if (!selectedDroneId.value) {\n ElMessage.warning('请选择执行路径的无人机');\n return;\n }\n try {\n await ElMessageBox.confirm('确定要执行此路径吗?', '确认执行', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n });\n ElMessage.success('路径执行中...');\n // TODO: 发送路径执行指令到后端\n } catch {\n ElMessage.info('已取消执行');\n }\n };\n\n // 清除所有路径点\n const clearAll = () => {\n clearPathMarkers();\n if (pathLine.value) {\n mapInstance.value.remove(pathLine.value);\n pathLine.value = null;\n }\n pathPoints.value = [];\n pathInfo.value = null;\n ElMessage.success('已清除所有路径点');\n };\n\n // 选择无人机\n const selectDrone = id => {\n selectedDroneId.value = id;\n const drone = drones.value.find(d => d.id === id);\n if (drone) {\n ElMessage.success(`已选择无人机: ${drone.name}`);\n }\n };\n\n // 中心到起点\n const centerToStart = () => {\n if (pathPoints.value.length === 0) return;\n const startPoint = pathPoints.value[0];\n mapInstance.value.setCenter([startPoint.lng, startPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 中心到终点\n const centerToEnd = () => {\n if (pathPoints.value.length < 2) return;\n const endPoint = pathPoints.value[pathPoints.value.length - 1];\n mapInstance.value.setCenter([endPoint.lng, endPoint.lat]);\n mapInstance.value.setZoom(15);\n };\n\n // 适合路径\n const fitToPath = () => {\n if (pathPoints.value.length === 0) return;\n const bounds = new window.AMap.Bounds();\n pathPoints.value.forEach(point => {\n bounds.extend([point.lng, point.lat]);\n });\n mapInstance.value.setBounds(bounds);\n };\n onMounted(() => {\n // 初始化功能\n });\n return {\n sharedMapRef,\n activePanel,\n addMode,\n targetPoints,\n showDrones,\n showDroneInfo,\n threatZones,\n selectedZoneId,\n currentThreatType,\n drawMode,\n threatLevel,\n circleRadius,\n threatDescription,\n threatTimeRange,\n visibleLayers,\n editDialogVisible,\n editForm,\n drones,\n selectedDroneId,\n pathPoints,\n planningAlgorithm,\n flightAltitude,\n flightSpeed,\n pathInfo,\n handleTabClick,\n onMapLoaded,\n onMapClick,\n toggleAddMode,\n clearTargets,\n toggleDroneVisibility,\n toggleDroneInfo,\n getAddModeTip,\n getDrawTip,\n handleThreatTypeChange,\n handleThreatLevelChange,\n updateCircleRadius,\n updateThreatDescription,\n updateThreatTimeRange,\n setDrawMode,\n selectZone,\n deleteZone,\n editZone,\n saveEditedZone,\n clearAllZones,\n updateLayerVisibility,\n fitToZones,\n removePoint,\n planPath,\n executePath,\n clearAll,\n selectDrone,\n centerToStart,\n centerToEnd,\n fitToPath\n };\n }\n};","map":{"version":3,"names":["ref","onMounted","inject","computed","useStore","ElMessage","ElMessageBox","SharedMap","BasicMapPanel","ThreatZonePanel","PathPlanningPanel","name","components","setup","store","sharedMapRef","activePanel","mapInstance","addMode","showDrones","showDroneInfo","targetPoints","targetMarkers","threatZones","zoneOverlays","drawMode","currentThreatType","threatLevel","circleRadius","threatDescription","threatTimeRange","Date","now","selectedZoneId","visibleLayers","editDialogVisible","editForm","id","type","level","description","geometry","drones","state","selectedDroneId","pathPoints","pathMarkers","pathLine","planningAlgorithm","flightAltitude","flightSpeed","pathInfo","mouseTool","droneMarkers","safeBase64Encode","str","btoa","unescape","encodeURIComponent","error","console","warn","threatTypeConfig","radar","color","missile","aircraft","ground","weather","threatLevelConfig","low","opacity","medium","high","critical","onMapLoaded","map","value","log","AMap","window","MouseTool","on","onDrawComplete","initActivePanelFeatures","initDroneMarkers","loadThreatZones","length","onMapClick","e","lng","lat","lnglat","addTargetPoint","addPathPoint","handleTabClick","close","toggleAddMode","dispatch","Object","values","forEach","marker","remove","drone","longitude","latitude","Marker","position","title","icon","Icon","size","Size","image","getDroneIconSvg","status","imageSize","infoWindow","InfoWindow","isCustom","content","getStatusText","battery","toFixed","offset","Pixel","open","getPosition","infoError","add","markerError","sampleDrones","commit","colors","active","idle","svgString","statusMap","toggleDroneVisibility","toggleDroneInfo","getAddModeTip","message","push","success","clearTargets","getDrawTip","handleThreatTypeChange","handleThreatLevelChange","updateCircleRadius","radius","updateThreatDescription","desc","updateThreatTimeRange","range","setDrawMode","mode","info","options","strokeColor","strokeWeight","fillColor","fillOpacity","circle","polygon","rectangle","event","overlay","obj","zone","timeRange","getGeometryFromOverlay","selectZone","CLASS_NAME","center","getCenter","getRadius","path","getPath","bounds","getBounds","find","z","setOptions","strokeOpacity","deleteZone","filter","editZone","saveEditedZone","clearAllZones","updateLayerVisibility","layers","includes","fitToZones","Bounds","extend","setBounds","pointIndex","updatePathLine","p","Polyline","strokeStyle","removePoint","index","splice","clearPathMarkers","point","i","addPathPointMarker","planPath","warning","distance","calculateDistance","duration","Math","ceil","round","pointCount","totalDistance","p1","p2","getDistance","lat1","lng1","lat2","lng2","R","φ1","PI","φ2","Δφ","Δλ","a","sin","cos","c","atan2","sqrt","executePath","confirm","confirmButtonText","cancelButtonText","clearAll","selectDrone","d","centerToStart","startPoint","setCenter","setZoom","centerToEnd","endPoint","fitToPath"],"sources":["E:\\大三下\\软件工程\\command_center(1)\\command_center\\web-command-center\\frontend\\src\\views\\UnifiedMapView.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n "],"mappings":"AAuJA,SAASA,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAO,QAAS,KAAI;AACrD,SAASC,QAAO,QAAS,MAAK;AAC9B,SAASC,SAAS,EAAEC,YAAW,QAAS,cAAa;AACrD,OAAOC,SAAQ,MAAO,6BAA4B;AAClD,OAAOC,aAAY,MAAO,4CAA2C;AACrE,OAAOC,eAAc,MAAO,8CAA6C;AACzE,OAAOC,iBAAgB,MAAO,gDAA+C;AAE7E,eAAe;EACbC,IAAI,EAAE,gBAAgB;EACtBC,UAAU,EAAE;IACVL,SAAS;IACTC,aAAa;IACbC,eAAe;IACfC;EACF,CAAC;EACDG,KAAKA,CAAA,EAAG;IACN,MAAMC,KAAI,GAAIV,QAAQ,CAAC;IACvB,MAAMW,YAAW,GAAIf,GAAG,CAAC,IAAI;;IAE7B;IACA,MAAMgB,WAAU,GAAIhB,GAAG,CAAC,UAAU;;IAElC;IACA,MAAMiB,WAAU,GAAIjB,GAAG,CAAC,IAAI;;IAE5B;IACA,MAAMkB,OAAM,GAAIlB,GAAG,CAAC,KAAK;IACzB,MAAMmB,UAAS,GAAInB,GAAG,CAAC,IAAI;IAC3B,MAAMoB,aAAY,GAAIpB,GAAG,CAAC,KAAK;;IAE/B;IACA,MAAMqB,YAAW,GAAIrB,GAAG,CAAC,EAAE;IAC3B,MAAMsB,aAAY,GAAItB,GAAG,CAAC,EAAE;;IAE5B;IACA,MAAMuB,WAAU,GAAIvB,GAAG,CAAC,EAAE;IAC1B,MAAMwB,YAAW,GAAIxB,GAAG,CAAC,CAAC,CAAC;IAC3B,MAAMyB,QAAO,GAAIzB,GAAG,CAAC,IAAI;IACzB,MAAM0B,iBAAgB,GAAI1B,GAAG,CAAC,OAAO;IACrC,MAAM2B,WAAU,GAAI3B,GAAG,CAAC,QAAQ;IAChC,MAAM4B,YAAW,GAAI5B,GAAG,CAAC,IAAI;IAC7B,MAAM6B,iBAAgB,GAAI7B,GAAG,CAAC,EAAE;IAChC,MAAM8B,eAAc,GAAI9B,GAAG,CAAC,CAAC,IAAI+B,IAAI,CAAC,CAAC,EAAE,IAAIA,IAAI,CAACA,IAAI,CAACC,GAAG,CAAC,IAAI,EAAC,GAAI,EAAC,GAAI,EAAC,GAAI,IAAI,CAAC,CAAC;IACpF,MAAMC,cAAa,GAAIjC,GAAG,CAAC,IAAI;IAC/B,MAAMkC,aAAY,GAAIlC,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC;IAC/E,MAAMmC,iBAAgB,GAAInC,GAAG,CAAC,KAAK;IACnC,MAAMoC,QAAO,GAAIpC,GAAG,CAAC;MACnBqC,EAAE,EAAE,IAAI;MACRC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE,QAAQ;MACfC,WAAW,EAAE,EAAE;MACfC,QAAQ,EAAE;IACZ,CAAC;;IAED;IACA,MAAMC,MAAK,GAAIvC,QAAQ,CAAC,MAAMW,KAAK,CAAC6B,KAAK,CAACD,MAAK,IAAK,EAAE;IACtD,MAAME,eAAc,GAAI5C,GAAG,CAAC,IAAI;IAChC,MAAM6C,UAAS,GAAI7C,GAAG,CAAC,EAAE;IACzB,MAAM8C,WAAU,GAAI9C,GAAG,CAAC,EAAE;IAC1B,MAAM+C,QAAO,GAAI/C,GAAG,CAAC,IAAI;IACzB,MAAMgD,iBAAgB,GAAIhD,GAAG,CAAC,UAAU;IACxC,MAAMiD,cAAa,GAAIjD,GAAG,CAAC,GAAG;IAC9B,MAAMkD,WAAU,GAAIlD,GAAG,CAAC,EAAE;IAC1B,MAAMmD,QAAO,GAAInD,GAAG,CAAC,IAAI;;IAEzB;IACA,MAAMoD,SAAQ,GAAIpD,GAAG,CAAC,IAAI;IAC1B,MAAMqD,YAAW,GAAIrD,GAAG,CAAC,CAAC,CAAC;;IAE3B;IACA,MAAMsD,gBAAe,GAAKC,GAAG,IAAK;MAChC,IAAI;QACF,OAAOC,IAAI,CAACC,QAAQ,CAACC,kBAAkB,CAACH,GAAG,CAAC,CAAC;MAC/C,EAAE,OAAOI,KAAK,EAAE;QACdC,OAAO,CAACC,IAAI,CAAC,aAAa,EAAEF,KAAK;QACjC,OAAOH,IAAI,CAACD,GAAG;MACjB;IACF;;IAEA;IACA,MAAMO,gBAAe,GAAI;MACvBC,KAAK,EAAE;QAAEpD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MACzCC,OAAO,EAAE;QAAEtD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MAC3CE,QAAQ,EAAE;QAAEvD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MAC5CG,MAAM,EAAE;QAAExD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU,CAAC;MAC1CI,OAAO,EAAE;QAAEzD,IAAI,EAAE,MAAM;QAAEqD,KAAK,EAAE;MAAU;IAC5C;;IAEA;IACA,MAAMK,iBAAgB,GAAI;MACxBC,GAAG,EAAE;QAAE3D,IAAI,EAAE,KAAK;QAAE4D,OAAO,EAAE;MAAI,CAAC;MAClCC,MAAM,EAAE;QAAE7D,IAAI,EAAE,KAAK;QAAE4D,OAAO,EAAE;MAAI,CAAC;MACrCE,IAAI,EAAE;QAAE9D,IAAI,EAAE,KAAK;QAAE4D,OAAO,EAAE;MAAI,CAAC;MACnCG,QAAQ,EAAE;QAAE/D,IAAI,EAAE,MAAM;QAAE4D,OAAO,EAAE;MAAI;IACzC;;IAEA;IACA,MAAMI,WAAU,GAAKC,GAAG,IAAK;MAC3B3D,WAAW,CAAC4D,KAAI,GAAID,GAAE;MACtBhB,OAAO,CAACkB,GAAG,CAAC,YAAY;;MAExB;MACA,MAAMC,IAAG,GAAIC,MAAM,CAACD,IAAG;MACvB,IAAIA,IAAI,EAAE;QACR3B,SAAS,CAACyB,KAAI,GAAI,IAAIE,IAAI,CAACE,SAAS,CAACL,GAAG;QACxCxB,SAAS,CAACyB,KAAK,CAACK,EAAE,CAAC,MAAM,EAAEC,cAAc;MAC3C;;MAEA;MACAC,uBAAuB,CAAC;;MAExB;MACAC,gBAAgB,CAAC;IACnB;;IAEA;IACA,MAAMD,uBAAsB,GAAIA,CAAA,KAAM;MACpC,QAAQpE,WAAW,CAAC6D,KAAK;QACvB,KAAK,UAAU;UACb;UACA;QACF,KAAK,YAAY;UACf;UACAS,eAAe,CAAC;UAChB;QACF,KAAK,cAAc;UACjB;UACA,IAAI5C,MAAM,CAACmC,KAAK,CAACU,MAAK,GAAI,KAAK,CAAC3C,eAAe,CAACiC,KAAK,EAAE;YACrDjC,eAAe,CAACiC,KAAI,GAAInC,MAAM,CAACmC,KAAK,CAAC,CAAC,CAAC,CAACxC,EAAC;UAC3C;UACA;MACJ;IACF;;IAEA;IACA,MAAMmD,UAAS,GAAKC,CAAC,IAAK;MACxB,MAAM;QAAEC,GAAG;QAAEC;MAAI,IAAIF,CAAC,CAACG,MAAK;MAE5B,IAAI5E,WAAW,CAAC6D,KAAI,KAAM,UAAS,IAAK3D,OAAO,CAAC2D,KAAK,EAAE;QACrD;QACAgB,cAAc,CAACH,GAAG,EAAEC,GAAG;MACzB,OAAO,IAAI3E,WAAW,CAAC6D,KAAI,KAAM,cAAa,IAAK3D,OAAO,CAAC2D,KAAK,EAAE;QAChE;QACAiB,YAAY,CAACJ,GAAG,EAAEC,GAAG;MACvB;MACA;IACF;;IAEA;IACA,MAAMI,cAAa,GAAIA,CAAA,KAAM;MAC3B;MACA7E,OAAO,CAAC2D,KAAI,GAAI,KAAI;MACpBpD,QAAQ,CAACoD,KAAI,GAAI,IAAG;;MAEpB;MACA,IAAIzB,SAAS,CAACyB,KAAK,EAAE;QACnBzB,SAAS,CAACyB,KAAK,CAACmB,KAAK,CAAC,IAAI;MAC5B;;MAEA;MACAZ,uBAAuB,CAAC;IAC1B;;IAEA;;IAEA;IACA,MAAMa,aAAY,GAAIA,CAAA,KAAM;MAC1B/E,OAAO,CAAC2D,KAAI,GAAI,CAAC3D,OAAO,CAAC2D,KAAI;MAC7B;MACA,IAAI7D,WAAW,CAAC6D,KAAI,KAAM,YAAY,EAAE;QACtCpD,QAAQ,CAACoD,KAAI,GAAI,IAAG;QACpB,IAAIzB,SAAS,CAACyB,KAAK,EAAE;UACnBzB,SAAS,CAACyB,KAAK,CAACmB,KAAK,CAAC,IAAI;QAC5B;MACF;IACF;;IAEA;IACA,MAAMX,gBAAe,GAAI,MAAAA,CAAA,KAAY;MACnC,IAAI,CAACpE,WAAW,CAAC4D,KAAK,EAAE;MAExB,IAAI;QACF;QACA,MAAM/D,KAAK,CAACoF,QAAQ,CAAC,aAAa;QAElC,MAAMnB,IAAG,GAAIC,MAAM,CAACD,IAAG;QACvB,IAAI,CAACA,IAAG,IAAK,CAACrC,MAAM,CAACmC,KAAI,IAAKnC,MAAM,CAACmC,KAAK,CAACU,MAAK,KAAM,CAAC,EAAE;UACvD3B,OAAO,CAACkB,GAAG,CAAC,kBAAkB;UAC9B;QACF;;QAEA;QACAqB,MAAM,CAACC,MAAM,CAAC/C,YAAY,CAACwB,KAAK,CAAC,CAACwB,OAAO,CAACC,MAAK,IAAK;UAClDrF,WAAW,CAAC4D,KAAK,CAAC0B,MAAM,CAACD,MAAM;QACjC,CAAC;QACDjD,YAAY,CAACwB,KAAI,GAAI,CAAC;QAEtBnC,MAAM,CAACmC,KAAK,CAACwB,OAAO,CAACG,KAAI,IAAK;UAC5B,IAAI,CAACA,KAAI,IAAK,OAAOA,KAAK,CAACC,SAAQ,KAAM,QAAO,IAAK,OAAOD,KAAK,CAACE,QAAO,KAAM,QAAQ,EAAE;YACvF9C,OAAO,CAACC,IAAI,CAAC,WAAW,EAAE2C,KAAK;YAC/B;UACF;UAEA,IAAI;YACF,MAAMF,MAAK,GAAI,IAAIvB,IAAI,CAAC4B,MAAM,CAAC;cAC7BC,QAAQ,EAAE,CAACJ,KAAK,CAACC,SAAS,EAAED,KAAK,CAACE,QAAQ,CAAC;cAC3CG,KAAK,EAAEL,KAAK,CAAC7F,IAAG,IAAK,OAAO6F,KAAK,CAACnE,EAAE,EAAE;cACtCyE,IAAI,EAAE,IAAI/B,IAAI,CAACgC,IAAI,CAAC;gBAClBC,IAAI,EAAE,IAAIjC,IAAI,CAACkC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBAC3BC,KAAK,EAAEC,eAAe,CAACX,KAAK,CAACY,MAAM,CAAC;gBACpCC,SAAS,EAAE,IAAItC,IAAI,CAACkC,IAAI,CAAC,EAAE,EAAE,EAAE;cACjC,CAAC;YACH,CAAC;;YAED;YACA,MAAMK,UAAS,GAAI,IAAIvC,IAAI,CAACwC,UAAU,CAAC;cACrCC,QAAQ,EAAE,IAAI;cACdC,OAAO,EAAE;;gEAEyCjB,KAAK,CAAC7F,IAAG,IAAK,OAAO6F,KAAK,CAACnE,EAAE,EAAE;+DAChCqF,aAAa,CAAClB,KAAK,CAACY,MAAM,CAAC;+DAC3BZ,KAAK,CAACmB,OAAM,IAAK,CAAC;+DAClBnB,KAAK,CAACC,SAAS,CAACmB,OAAO,CAAC,CAAC,CAAC,KAAKpB,KAAK,CAACE,QAAQ,CAACkB,OAAO,CAAC,CAAC,CAAC;;eAExG;cACDC,MAAM,EAAE,IAAI9C,IAAI,CAAC+C,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE;YAChC,CAAC;YAEDxB,MAAM,CAACpB,EAAE,CAAC,OAAO,EAAE,MAAM;cACvB,IAAI;gBACFoC,UAAU,CAACS,IAAI,CAAC9G,WAAW,CAAC4D,KAAK,EAAEyB,MAAM,CAAC0B,WAAW,CAAC,CAAC;cACzD,EAAE,OAAOC,SAAS,EAAE;gBAClBrE,OAAO,CAACC,IAAI,CAAC,WAAW,EAAEoE,SAAS;cACrC;YACF,CAAC;YAED5E,YAAY,CAACwB,KAAK,CAAC2B,KAAK,CAACnE,EAAE,IAAIiE,MAAK;YACpC,IAAInF,UAAU,CAAC0D,KAAK,EAAE;cACpB5D,WAAW,CAAC4D,KAAK,CAACqD,GAAG,CAAC5B,MAAM;YAC9B;UACF,EAAE,OAAO6B,WAAW,EAAE;YACpBvE,OAAO,CAACC,IAAI,CAAC,OAAO2C,KAAK,CAACnE,EAAE,UAAU,EAAE8F,WAAW;UACrD;QACF,CAAC;MACH,EAAE,OAAOxE,KAAK,EAAE;QACdC,OAAO,CAACC,IAAI,CAAC,aAAa,EAAEF,KAAK;;QAEjC;QACA,MAAMyE,YAAW,GAAI,CACnB;UACE/F,EAAE,EAAE,CAAC;UACL1B,IAAI,EAAE,UAAU;UAChB+F,QAAQ,EAAE,OAAO;UACjBD,SAAS,EAAE,QAAQ;UACnBW,MAAM,EAAE,QAAQ;UAChBO,OAAO,EAAE;QACX,CAAC,EACD;UACEtF,EAAE,EAAE,CAAC;UACL1B,IAAI,EAAE,UAAU;UAChB+F,QAAQ,EAAE,OAAO;UACjBD,SAAS,EAAE,QAAQ;UACnBW,MAAM,EAAE,MAAM;UACdO,OAAO,EAAE;QACX,EACF;QAEA7G,KAAK,CAACuH,MAAM,CAAC,WAAW,EAAED,YAAY;MACxC;IACF;IAEA,MAAMjB,eAAc,GAAKC,MAAM,IAAK;MAClC,MAAMkB,MAAK,GAAI;QACbC,MAAM,EAAE,SAAS;QACjBC,IAAI,EAAE,SAAS;QACf7E,KAAK,EAAE;MACT;MACA,MAAMK,KAAI,GAAIsE,MAAM,CAAClB,MAAM,KAAKkB,MAAM,CAACE,IAAG;MAE1C,MAAMC,SAAQ,GAAI;;iDAEyBzE,KAAK;;;OAGhD;MAEA,OAAO,4BAA2B,GAAIV,gBAAgB,CAACmF,SAAS;IAClE;IAEA,MAAMf,aAAY,GAAKN,MAAM,IAAK;MAChC,MAAMsB,SAAQ,GAAI;QAChBH,MAAM,EAAE,KAAK;QACbC,IAAI,EAAE,IAAI;QACV7E,KAAK,EAAE;MACT;MACA,OAAO+E,SAAS,CAACtB,MAAM,KAAKA,MAAK;IACnC;;IAEA;IACA,MAAMuB,qBAAoB,GAAK9D,KAAK,IAAK;MACvC1D,UAAU,CAAC0D,KAAI,GAAIA,KAAI;MACvBsB,MAAM,CAACC,MAAM,CAAC/C,YAAY,CAACwB,KAAK,CAAC,CAACwB,OAAO,CAACC,MAAK,IAAK;QAClD,IAAIzB,KAAK,EAAE;UACT5D,WAAW,CAAC4D,KAAK,CAACqD,GAAG,CAAC5B,MAAM;QAC9B,OAAO;UACLrF,WAAW,CAAC4D,KAAK,CAAC0B,MAAM,CAACD,MAAM;QACjC;MACF,CAAC;IACH;;IAEA;IACA,MAAMsC,eAAc,GAAK/D,KAAK,IAAK;MACjCzD,aAAa,CAACyD,KAAI,GAAIA,KAAI;MAC1B;IACF;;IAEA;IACA,MAAMgE,aAAY,GAAIA,CAAA,KAAM;MAC1B,IAAI7H,WAAW,CAAC6D,KAAI,KAAM,UAAU,EAAE;QACpC,OAAO,WAAU;MACnB,OAAO,IAAI7D,WAAW,CAAC6D,KAAI,KAAM,cAAc,EAAE;QAC/C,OAAO,WAAU;MACnB;MACA,OAAO,EAAC;IACV;;IAEA;;IAEA;IACA,MAAMgB,cAAa,GAAIA,CAACH,GAAG,EAAEC,GAAG,KAAK;MACnC,IAAI,CAAC1E,WAAW,CAAC4D,KAAK,EAAE;MAExB,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;;MAEvB;MACA,MAAMuB,MAAK,GAAI,IAAIvB,IAAI,CAAC4B,MAAM,CAAC;QAC7BC,QAAQ,EAAE,CAAClB,GAAG,EAAEC,GAAG,CAAC;QACpBmB,IAAI,EAAE,IAAI/B,IAAI,CAACgC,IAAI,CAAC;UAClBC,IAAI,EAAE,IAAIjC,IAAI,CAACkC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;UAC3BC,KAAK,EAAE,4BAA2B,GAAI5D,gBAAgB,CAAC;;;;;WAKtD,CAAC;UACF+D,SAAS,EAAE,IAAItC,IAAI,CAACkC,IAAI,CAAC,EAAE,EAAE,EAAE;QACjC,CAAC,CAAC;QACFJ,KAAK,EAAE,WAAWnB,GAAG,CAACkC,OAAO,CAAC,CAAC,CAAC,KAAKjC,GAAG,CAACiC,OAAO,CAAC,CAAC,CAAC;MACrD,CAAC;;MAED;MACAtB,MAAM,CAACpB,EAAE,CAAC,OAAO,EAAE,MAAM;QACvB7E,SAAS,CAAC;UACRyI,OAAO,EAAE,UAAUpD,GAAG,CAACkC,OAAO,CAAC,CAAC,CAAC,KAAKjC,GAAG,CAACiC,OAAO,CAAC,CAAC,CAAC,EAAE;UACtDtF,IAAI,EAAE;QACR,CAAC;MACH,CAAC;MAEDrB,WAAW,CAAC4D,KAAK,CAACqD,GAAG,CAAC5B,MAAM;MAC5BhF,aAAa,CAACuD,KAAK,CAACkE,IAAI,CAACzC,MAAM;MAC/BjF,YAAY,CAACwD,KAAK,CAACkE,IAAI,CAAC;QAAErD,GAAG;QAAEC;MAAI,CAAC;MAEpCtF,SAAS,CAAC2I,OAAO,CAAC,WAAWtD,GAAG,CAACkC,OAAO,CAAC,CAAC,CAAC,KAAKjC,GAAG,CAACiC,OAAO,CAAC,CAAC,CAAC,EAAE;IAClE;;IAEA;IACA,MAAMqB,YAAW,GAAIA,CAAA,KAAM;MACzB3H,aAAa,CAACuD,KAAK,CAACwB,OAAO,CAACC,MAAK,IAAK;QACpCrF,WAAW,CAAC4D,KAAK,CAAC0B,MAAM,CAACD,MAAM;MACjC,CAAC;MACDhF,aAAa,CAACuD,KAAI,GAAI,EAAC;MACvBxD,YAAY,CAACwD,KAAI,GAAI,EAAC;MACtBxE,SAAS,CAAC2I,OAAO,CAAC,UAAU;IAC9B;;IAEA;;IAEA;IACA,MAAME,UAAS,GAAIA,CAAA,KAAM;MACvB,IAAIzH,QAAQ,CAACoD,KAAI,KAAM,QAAQ,EAAE;QAC/B,OAAO,oBAAmB;MAC5B,OAAO,IAAIpD,QAAQ,CAACoD,KAAI,KAAM,SAAS,EAAE;QACvC,OAAO,kBAAiB;MAC1B,OAAO,IAAIpD,QAAQ,CAACoD,KAAI,KAAM,WAAW,EAAE;QACzC,OAAO,aAAY;MACrB;MACA,OAAO,EAAC;IACV;;IAEA;IACA,MAAMsE,sBAAqB,GAAK7G,IAAI,IAAK;MACvCZ,iBAAiB,CAACmD,KAAI,GAAIvC,IAAG;IAC/B;;IAEA;IACA,MAAM8G,uBAAsB,GAAK7G,KAAK,IAAK;MACzCZ,WAAW,CAACkD,KAAI,GAAItC,KAAI;IAC1B;;IAEA;IACA,MAAM8G,kBAAiB,GAAKC,MAAM,IAAK;MACrC1H,YAAY,CAACiD,KAAI,GAAIyE,MAAK;IAC5B;;IAEA;IACA,MAAMC,uBAAsB,GAAKC,IAAI,IAAK;MACxC3H,iBAAiB,CAACgD,KAAI,GAAI2E,IAAG;IAC/B;;IAEA;IACA,MAAMC,qBAAoB,GAAKC,KAAK,IAAK;MACvC5H,eAAe,CAAC+C,KAAI,GAAI6E,KAAI;IAC9B;;IAEA;IACA,MAAMC,WAAU,GAAKC,IAAI,IAAK;MAC5B,IAAI,CAACxG,SAAS,CAACyB,KAAK,EAAE;MAEtB,IAAIpD,QAAQ,CAACoD,KAAI,KAAM+E,IAAI,EAAE;QAC3B;QACAnI,QAAQ,CAACoD,KAAI,GAAI,IAAG;QACpBzB,SAAS,CAACyB,KAAK,CAACmB,KAAK,CAAC,IAAI;QAC1B3F,SAAS,CAACwJ,IAAI,CAAC,SAAS;QACxB;MACF;MAEApI,QAAQ,CAACoD,KAAI,GAAI+E,IAAG;MACpB1I,OAAO,CAAC2D,KAAI,GAAI,KAAI;;MAEpB;MACA,MAAMiF,OAAM,GAAI;QACdC,WAAW,EAAEjG,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAACb,KAAK;QAC5DgG,YAAY,EAAE,CAAC;QACfC,SAAS,EAAEnG,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAACb,KAAK;QAC1DkG,WAAW,EAAE7F,iBAAiB,CAAC1C,WAAW,CAACkD,KAAK,CAAC,CAACN;MACpD;MAEA,QAAQqF,IAAI;QACV,KAAK,QAAQ;UACXxG,SAAS,CAACyB,KAAK,CAACsF,MAAM,CAACL,OAAO;UAC9B;QACF,KAAK,SAAS;UACZ1G,SAAS,CAACyB,KAAK,CAACuF,OAAO,CAACN,OAAO;UAC/B;QACF,KAAK,WAAW;UACd1G,SAAS,CAACyB,KAAK,CAACwF,SAAS,CAACP,OAAO;UACjC;MACJ;MAEAzJ,SAAS,CAACwJ,IAAI,CAACX,UAAU,CAAC,CAAC;IAC7B;;IAEA;IACA,MAAM/D,cAAa,GAAKmF,KAAK,IAAK;MAChC,MAAMC,OAAM,GAAID,KAAK,CAACE,GAAE;;MAExB;MACA,MAAMC,IAAG,GAAI;QACXpI,EAAE,EAAEN,IAAI,CAACC,GAAG,CAAC,CAAC;QACdM,IAAI,EAAEZ,iBAAiB,CAACmD,KAAK;QAC7BtC,KAAK,EAAEZ,WAAW,CAACkD,KAAK;QACxBrC,WAAW,EAAEX,iBAAiB,CAACgD,KAAK;QACpC6F,SAAS,EAAE5I,eAAe,CAAC+C,KAAK;QAChCpC,QAAQ,EAAEkI,sBAAsB,CAACJ,OAAO,CAAC;QACzCA,OAAO,EAAEA;MACX;;MAEA;MACAhJ,WAAW,CAACsD,KAAK,CAACkE,IAAI,CAAC0B,IAAI;MAC3BjJ,YAAY,CAACqD,KAAK,CAAC4F,IAAI,CAACpI,EAAE,IAAIkI,OAAM;;MAEpC;MACAA,OAAO,CAACrF,EAAE,CAAC,OAAO,EAAE,MAAM0F,UAAU,CAACH,IAAI,CAACpI,EAAE,CAAC;;MAE7C;MACAZ,QAAQ,CAACoD,KAAI,GAAI,IAAG;MACpBzB,SAAS,CAACyB,KAAK,CAACmB,KAAK,CAAC,IAAI;MAE1B3F,SAAS,CAAC2I,OAAO,CAAC,MAAMlF,gBAAgB,CAACpC,iBAAiB,CAACmD,KAAK,CAAC,CAAClE,IAAI,IAAI;IAC5E;IAEA,MAAMgK,sBAAqB,GAAKJ,OAAO,IAAK;MAC1C,IAAIA,OAAO,CAACM,UAAS,KAAM,aAAa,EAAE;QACxC,OAAO;UACLvI,IAAI,EAAE,QAAQ;UACdwI,MAAM,EAAEP,OAAO,CAACQ,SAAS,CAAC,CAAC;UAC3BzB,MAAM,EAAEiB,OAAO,CAACS,SAAS,CAAC;QAC5B;MACF,OAAO,IAAIT,OAAO,CAACM,UAAS,KAAM,cAAc,EAAE;QAChD,OAAO;UACLvI,IAAI,EAAE,SAAS;UACf2I,IAAI,EAAEV,OAAO,CAACW,OAAO,CAAC;QACxB;MACF,OAAO,IAAIX,OAAO,CAACM,UAAS,KAAM,gBAAgB,EAAE;QAClD,OAAO;UACLvI,IAAI,EAAE,WAAW;UACjB6I,MAAM,EAAEZ,OAAO,CAACa,SAAS,CAAC;QAC5B;MACF;MACA,OAAO,IAAG;IACZ;;IAEA;IACA,MAAM9F,eAAc,GAAIA,CAAA,KAAM;MAC5B;MACA;IAAA,CACF;;IAEA;IACA,MAAMsF,UAAS,GAAKvI,EAAE,IAAK;MACzBJ,cAAc,CAAC4C,KAAI,GAAIxC,EAAC;MACxB,MAAMoI,IAAG,GAAIlJ,WAAW,CAACsD,KAAK,CAACwG,IAAI,CAACC,CAAA,IAAKA,CAAC,CAACjJ,EAAC,KAAMA,EAAE;MACpD,IAAIoI,IAAG,IAAKA,IAAI,CAACF,OAAO,EAAE;QACxB;QACAE,IAAI,CAACF,OAAO,CAACgB,UAAU,CAAC;UACtBvB,YAAY,EAAE,CAAC;UACfwB,aAAa,EAAE;QACjB,CAAC;;QAED;QACAjK,WAAW,CAACsD,KAAK,CAACwB,OAAO,CAACiF,CAAA,IAAK;UAC7B,IAAIA,CAAC,CAACjJ,EAAC,KAAMA,EAAC,IAAKiJ,CAAC,CAACf,OAAO,EAAE;YAC5Be,CAAC,CAACf,OAAO,CAACgB,UAAU,CAAC;cACnBvB,YAAY,EAAE,CAAC;cACfwB,aAAa,EAAE;YACjB,CAAC;UACH;QACF,CAAC;MACH;IACF;;IAEA;IACA,MAAMC,UAAS,GAAKpJ,EAAE,IAAK;MACzB,MAAMkI,OAAM,GAAI/I,YAAY,CAACqD,KAAK,CAACxC,EAAE;MACrC,IAAIkI,OAAO,EAAE;QACXtJ,WAAW,CAAC4D,KAAK,CAAC0B,MAAM,CAACgE,OAAO;QAChC,OAAO/I,YAAY,CAACqD,KAAK,CAACxC,EAAE;MAC9B;MAEAd,WAAW,CAACsD,KAAI,GAAItD,WAAW,CAACsD,KAAK,CAAC6G,MAAM,CAACjB,IAAG,IAAKA,IAAI,CAACpI,EAAC,KAAMA,EAAE;MAEnE,IAAIJ,cAAc,CAAC4C,KAAI,KAAMxC,EAAE,EAAE;QAC/BJ,cAAc,CAAC4C,KAAI,GAAI,IAAG;MAC5B;MAEAxE,SAAS,CAAC2I,OAAO,CAAC,QAAQ;IAC5B;;IAEA;IACA,MAAM2C,QAAO,GAAKlB,IAAI,IAAK;MACzBrI,QAAQ,CAACyC,KAAI,GAAI;QAAE,GAAG4F;MAAK;MAC3BtI,iBAAiB,CAAC0C,KAAI,GAAI,IAAG;IAC/B;;IAEA;IACA,MAAM+G,cAAa,GAAIA,CAAA,KAAM;MAC3B,MAAMnB,IAAG,GAAIlJ,WAAW,CAACsD,KAAK,CAACwG,IAAI,CAACC,CAAA,IAAKA,CAAC,CAACjJ,EAAC,KAAMD,QAAQ,CAACyC,KAAK,CAACxC,EAAE;MACnE,IAAIoI,IAAI,EAAE;QACRA,IAAI,CAACnI,IAAG,GAAIF,QAAQ,CAACyC,KAAK,CAACvC,IAAG;QAC9BmI,IAAI,CAAClI,KAAI,GAAIH,QAAQ,CAACyC,KAAK,CAACtC,KAAI;QAChCkI,IAAI,CAACjI,WAAU,GAAIJ,QAAQ,CAACyC,KAAK,CAACrC,WAAU;;QAE5C;QACA,IAAIiI,IAAI,CAACF,OAAO,EAAE;UAChBE,IAAI,CAACF,OAAO,CAACgB,UAAU,CAAC;YACtBxB,WAAW,EAAEjG,gBAAgB,CAAC2G,IAAI,CAACnI,IAAI,CAAC,CAAC0B,KAAK;YAC9CiG,SAAS,EAAEnG,gBAAgB,CAAC2G,IAAI,CAACnI,IAAI,CAAC,CAAC0B,KAAK;YAC5CkG,WAAW,EAAE7F,iBAAiB,CAACoG,IAAI,CAAClI,KAAK,CAAC,CAACgC;UAC7C,CAAC;QACH;QAEAlE,SAAS,CAAC2I,OAAO,CAAC,QAAQ;MAC5B;MACA7G,iBAAiB,CAAC0C,KAAI,GAAI,KAAI;IAChC;;IAEA;IACA,MAAMgH,aAAY,GAAIA,CAAA,KAAM;MAC1B1F,MAAM,CAACC,MAAM,CAAC5E,YAAY,CAACqD,KAAK,CAAC,CAACwB,OAAO,CAACkE,OAAM,IAAK;QACnDtJ,WAAW,CAAC4D,KAAK,CAAC0B,MAAM,CAACgE,OAAO;MAClC,CAAC;MAEDhJ,WAAW,CAACsD,KAAI,GAAI,EAAC;MACrBrD,YAAY,CAACqD,KAAI,GAAI,CAAC;MACtB5C,cAAc,CAAC4C,KAAI,GAAI,IAAG;MAE1BxE,SAAS,CAAC2I,OAAO,CAAC,UAAU;IAC9B;;IAEA;IACA,MAAM8C,qBAAoB,GAAKC,MAAM,IAAK;MACxC7J,aAAa,CAAC2C,KAAI,GAAIkH,MAAK;;MAE3B;MACAxK,WAAW,CAACsD,KAAK,CAACwB,OAAO,CAACoE,IAAG,IAAK;QAChC,IAAIA,IAAI,CAACF,OAAO,EAAE;UAChB,IAAIwB,MAAM,CAACC,QAAQ,CAACvB,IAAI,CAACnI,IAAI,CAAC,EAAE;YAC9BrB,WAAW,CAAC4D,KAAK,CAACqD,GAAG,CAACuC,IAAI,CAACF,OAAO;UACpC,OAAO;YACLtJ,WAAW,CAAC4D,KAAK,CAAC0B,MAAM,CAACkE,IAAI,CAACF,OAAO;UACvC;QACF;MACF,CAAC;IACH;;IAEA;IACA,MAAM0B,UAAS,GAAIA,CAAA,KAAM;MACvB,IAAI1K,WAAW,CAACsD,KAAK,CAACU,MAAK,KAAM,CAAC,EAAE;MAEpC,MAAM4F,MAAK,GAAI,IAAKnG,MAAM,CAACD,IAAI,CAACmH,MAAM,CAAE;MACxC3K,WAAW,CAACsD,KAAK,CAACwB,OAAO,CAACoE,IAAG,IAAK;QAChC,IAAIA,IAAI,CAACF,OAAM,IAAKE,IAAI,CAACF,OAAO,CAACa,SAAS,EAAE;UAC1CD,MAAM,CAACgB,MAAM,CAAC1B,IAAI,CAACF,OAAO,CAACa,SAAS,CAAC,CAAC;QACxC,OAAO,IAAIX,IAAI,CAAChI,QAAQ,EAAEqI,MAAM,EAAE;UAChCK,MAAM,CAACgB,MAAM,CAAC1B,IAAI,CAAChI,QAAQ,CAACqI,MAAM;QACpC;MACF,CAAC;MAED7J,WAAW,CAAC4D,KAAK,CAACuH,SAAS,CAACjB,MAAM;IACpC;;IAEA;;IAEA;IACA,MAAMrF,YAAW,GAAIA,CAACJ,GAAG,EAAEC,GAAG,KAAK;MACjC,IAAI,CAACzE,OAAO,CAAC2D,KAAI,IAAK,CAAC5D,WAAW,CAAC4D,KAAK,EAAE;MAE1C,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;MACvB,MAAMsH,UAAS,GAAIxJ,UAAU,CAACgC,KAAK,CAACU,MAAK,GAAI;;MAE7C;MACA1C,UAAU,CAACgC,KAAK,CAACkE,IAAI,CAAC;QAAErD,GAAG;QAAEC;MAAI,CAAC;;MAElC;MACA,MAAMW,MAAK,GAAI,IAAIvB,IAAI,CAAC4B,MAAM,CAAC;QAC7BC,QAAQ,EAAE,CAAClB,GAAG,EAAEC,GAAG,CAAC;QACpBmB,IAAI,EAAE,IAAI/B,IAAI,CAACgC,IAAI,CAAC;UAClBC,IAAI,EAAE,IAAIjC,IAAI,CAACkC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;UAC3BC,KAAK,EAAE,4BAA2B,GAAI5D,gBAAgB,CAAC;;;wGAGuC+I,UAAU;;WAEvG,CAAC;UACFhF,SAAS,EAAE,IAAItC,IAAI,CAACkC,IAAI,CAAC,EAAE,EAAE,EAAE;QACjC,CAAC,CAAC;QACFJ,KAAK,EAAE,MAAMwF,UAAU;MACzB,CAAC;MAEDpL,WAAW,CAAC4D,KAAK,CAACqD,GAAG,CAAC5B,MAAM;MAC5BxD,WAAW,CAAC+B,KAAK,CAACkE,IAAI,CAACzC,MAAM;;MAE7B;MACA,IAAIzD,UAAU,CAACgC,KAAK,CAACU,MAAK,GAAI,CAAC,EAAE;QAC/B+G,cAAc,CAAC;MACjB;MAEAjM,SAAS,CAAC2I,OAAO,CAAC,SAASqD,UAAU,EAAE;IACzC;IAEA,MAAMC,cAAa,GAAIA,CAAA,KAAM;MAC3B,IAAI,CAACrL,WAAW,CAAC4D,KAAK,EAAE;MAExB,MAAME,IAAG,GAAIC,MAAM,CAACD,IAAG;MAEvB,IAAIhC,QAAQ,CAAC8B,KAAK,EAAE;QAClB5D,WAAW,CAAC4D,KAAK,CAAC0B,MAAM,CAACxD,QAAQ,CAAC8B,KAAK;MACzC;MAEA,MAAMoG,IAAG,GAAIpI,UAAU,CAACgC,KAAK,CAACD,GAAG,CAAC2H,CAAA,IAAK,CAACA,CAAC,CAAC7G,GAAG,EAAE6G,CAAC,CAAC5G,GAAG,CAAC;MAErD5C,QAAQ,CAAC8B,KAAI,GAAI,IAAIE,IAAI,CAACyH,QAAQ,CAAC;QACjCvB,IAAI,EAAEA,IAAI;QACVlB,WAAW,EAAE,SAAS;QACtBC,YAAY,EAAE,CAAC;QACfyC,WAAW,EAAE;MACf,CAAC;MAEDxL,WAAW,CAAC4D,KAAK,CAACqD,GAAG,CAACnF,QAAQ,CAAC8B,KAAK;IACtC;;IAEA;IACA,MAAM6H,WAAU,GAAKC,KAAK,IAAK;MAC7B9J,UAAU,CAACgC,KAAK,CAAC+H,MAAM,CAACD,KAAK,EAAE,CAAC;;MAEhC;MACAE,gBAAgB,CAAC;MACjBhK,UAAU,CAACgC,KAAK,CAACwB,OAAO,CAAC,CAACyG,KAAK,EAAEC,CAAC,KAAK;QACrCC,kBAAkB,CAACF,KAAK,CAACpH,GAAG,EAAEoH,KAAK,CAACnH,GAAG,EAAEoH,CAAA,GAAI,CAAC;MAChD,CAAC;MAED,IAAIlK,UAAU,CAACgC,KAAK,CAACU,MAAK,GAAI,CAAC,EAAE;QAC/B+G,cAAc,CAAC;MACjB,OAAO,IAAIvJ,QAAQ,CAAC8B,KAAK,EAAE;QACzB5D,WAAW,CAAC4D,KAAK,CAAC0B,MAAM,CAACxD,QAAQ,CAAC8B,KAAK;QACvC9B,QAAQ,CAAC8B,KAAI,GAAI,IAAG;MACtB;;MAEA;MACA1B,QAAQ,CAAC0B,KAAI,GAAI,IAAG;IACtB;IAEA,MAAMmI,kBAAiB,GAAIA,CAACtH,GAAG,EAAEC,GAAG,EAAEgH,KAAK,KAAK;MAC9C,MAAM5H,IAAG,GAAIC,MAAM,CAACD,IAAG;MAEvB,MAAMuB,MAAK,GAAI,IAAIvB,IAAI,CAAC4B,MAAM,CAAC;QAC7BC,QAAQ,EAAE,CAAClB,GAAG,EAAEC,GAAG,CAAC;QACpBmB,IAAI,EAAE,IAAI/B,IAAI,CAACgC,IAAI,CAAC;UAClBC,IAAI,EAAE,IAAIjC,IAAI,CAACkC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;UAC3BC,KAAK,EAAE,4BAA2B,GAAI5D,gBAAgB,CAAC;;;wGAGuCqJ,KAAK;;WAElG,CAAC;UACFtF,SAAS,EAAE,IAAItC,IAAI,CAACkC,IAAI,CAAC,EAAE,EAAE,EAAE;QACjC,CAAC,CAAC;QACFJ,KAAK,EAAE,MAAM8F,KAAK;MACpB,CAAC;MAED1L,WAAW,CAAC4D,KAAK,CAACqD,GAAG,CAAC5B,MAAM;MAC5BxD,WAAW,CAAC+B,KAAK,CAACkE,IAAI,CAACzC,MAAM;IAC/B;IAEA,MAAMuG,gBAAe,GAAIA,CAAA,KAAM;MAC7B/J,WAAW,CAAC+B,KAAK,CAACwB,OAAO,CAACC,MAAK,IAAK;QAClCrF,WAAW,CAAC4D,KAAK,CAAC0B,MAAM,CAACD,MAAM;MACjC,CAAC;MACDxD,WAAW,CAAC+B,KAAI,GAAI,EAAC;IACvB;;IAEA;IACA,MAAMoI,QAAO,GAAI,MAAAA,CAAA,KAAY;MAC3B,IAAIpK,UAAU,CAACgC,KAAK,CAACU,MAAK,GAAI,CAAC,EAAE;QAC/BlF,SAAS,CAAC6M,OAAO,CAAC,WAAW;QAC7B;MACF;MAEA,IAAI;QACF;QACA,MAAMC,QAAO,GAAIC,iBAAiB,CAAC;QACnC,MAAMC,QAAO,GAAIC,IAAI,CAACC,IAAI,CAACJ,QAAO,IAAKjK,WAAW,CAAC2B,KAAI,GAAI,IAAG,GAAI,EAAE,CAAC,GAAE;;QAEvE1B,QAAQ,CAAC0B,KAAI,GAAI;UACfsI,QAAQ,EAAEG,IAAI,CAACE,KAAK,CAACL,QAAQ,CAAC;UAC9BE,QAAQ,EAAEA,QAAQ;UAClBI,UAAU,EAAE5K,UAAU,CAACgC,KAAK,CAACU;QAC/B;QAEAlF,SAAS,CAAC2I,OAAO,CAAC,QAAQ;MAC5B,EAAE,OAAOrF,KAAK,EAAE;QACdtD,SAAS,CAACsD,KAAK,CAAC,QAAQ;MAC1B;IACF;IAEA,MAAMyJ,iBAAgB,GAAIA,CAAA,KAAM;MAC9B,IAAIM,aAAY,GAAI;MACpB,KAAK,IAAIX,CAAA,GAAI,CAAC,EAAEA,CAAA,GAAIlK,UAAU,CAACgC,KAAK,CAACU,MAAK,GAAI,CAAC,EAAEwH,CAAC,EAAE,EAAE;QACpD,MAAMY,EAAC,GAAI9K,UAAU,CAACgC,KAAK,CAACkI,CAAC;QAC7B,MAAMa,EAAC,GAAI/K,UAAU,CAACgC,KAAK,CAACkI,CAAA,GAAI,CAAC;QACjCW,aAAY,IAAKG,WAAW,CAACF,EAAE,CAAChI,GAAG,EAAEgI,EAAE,CAACjI,GAAG,EAAEkI,EAAE,CAACjI,GAAG,EAAEiI,EAAE,CAAClI,GAAG;MAC7D;MACA,OAAOgI,aAAY;IACrB;IAEA,MAAMG,WAAU,GAAIA,CAACC,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,IAAI,KAAK;MAC9C,MAAMC,CAAA,GAAI,MAAK;MACf,MAAMC,EAAC,GAAIL,IAAG,GAAIR,IAAI,CAACc,EAAE,GAAC,GAAE;MAC5B,MAAMC,EAAC,GAAIL,IAAG,GAAIV,IAAI,CAACc,EAAE,GAAC,GAAE;MAC5B,MAAME,EAAC,GAAI,CAACN,IAAI,GAACF,IAAI,IAAIR,IAAI,CAACc,EAAE,GAAC,GAAE;MACnC,MAAMG,EAAC,GAAI,CAACN,IAAI,GAACF,IAAI,IAAIT,IAAI,CAACc,EAAE,GAAC,GAAE;MAEnC,MAAMI,CAAA,GAAIlB,IAAI,CAACmB,GAAG,CAACH,EAAE,GAAC,CAAC,IAAIhB,IAAI,CAACmB,GAAG,CAACH,EAAE,GAAC,CAAC,IAC9BhB,IAAI,CAACoB,GAAG,CAACP,EAAE,IAAIb,IAAI,CAACoB,GAAG,CAACL,EAAE,IAC1Bf,IAAI,CAACmB,GAAG,CAACF,EAAE,GAAC,CAAC,IAAIjB,IAAI,CAACmB,GAAG,CAACF,EAAE,GAAC,CAAC;MACxC,MAAMI,CAAA,GAAI,IAAIrB,IAAI,CAACsB,KAAK,CAACtB,IAAI,CAACuB,IAAI,CAACL,CAAC,CAAC,EAAElB,IAAI,CAACuB,IAAI,CAAC,CAAC,GAACL,CAAC,CAAC;MAErD,OAAON,CAAA,GAAIS,CAAA;IACb;;IAEA;IACA,MAAMG,WAAU,GAAI,MAAAA,CAAA,KAAY;MAC9B,IAAI,CAAClM,eAAe,CAACiC,KAAK,EAAE;QAC1BxE,SAAS,CAAC6M,OAAO,CAAC,aAAa;QAC/B;MACF;MAEA,IAAI;QACF,MAAM5M,YAAY,CAACyO,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE;UAC/CC,iBAAiB,EAAE,IAAI;UACvBC,gBAAgB,EAAE,IAAI;UACtB3M,IAAI,EAAE;QACR,CAAC;QAEDjC,SAAS,CAAC2I,OAAO,CAAC,UAAU;QAC5B;MACF,EAAE,MAAM;QACN3I,SAAS,CAACwJ,IAAI,CAAC,OAAO;MACxB;IACF;;IAEA;IACA,MAAMqF,QAAO,GAAIA,CAAA,KAAM;MACrBrC,gBAAgB,CAAC;MAEjB,IAAI9J,QAAQ,CAAC8B,KAAK,EAAE;QAClB5D,WAAW,CAAC4D,KAAK,CAAC0B,MAAM,CAACxD,QAAQ,CAAC8B,KAAK;QACvC9B,QAAQ,CAAC8B,KAAI,GAAI,IAAG;MACtB;MAEAhC,UAAU,CAACgC,KAAI,GAAI,EAAC;MACpB1B,QAAQ,CAAC0B,KAAI,GAAI,IAAG;MAEpBxE,SAAS,CAAC2I,OAAO,CAAC,UAAU;IAC9B;;IAEA;IACA,MAAMmG,WAAU,GAAK9M,EAAE,IAAK;MAC1BO,eAAe,CAACiC,KAAI,GAAIxC,EAAC;MACzB,MAAMmE,KAAI,GAAI9D,MAAM,CAACmC,KAAK,CAACwG,IAAI,CAAC+D,CAAA,IAAKA,CAAC,CAAC/M,EAAC,KAAMA,EAAE;MAChD,IAAImE,KAAK,EAAE;QACTnG,SAAS,CAAC2I,OAAO,CAAC,WAAWxC,KAAK,CAAC7F,IAAI,EAAE;MAC3C;IACF;;IAEA;IACA,MAAM0O,aAAY,GAAIA,CAAA,KAAM;MAC1B,IAAIxM,UAAU,CAACgC,KAAK,CAACU,MAAK,KAAM,CAAC,EAAE;MAEnC,MAAM+J,UAAS,GAAIzM,UAAU,CAACgC,KAAK,CAAC,CAAC;MACrC5D,WAAW,CAAC4D,KAAK,CAAC0K,SAAS,CAAC,CAACD,UAAU,CAAC5J,GAAG,EAAE4J,UAAU,CAAC3J,GAAG,CAAC;MAC5D1E,WAAW,CAAC4D,KAAK,CAAC2K,OAAO,CAAC,EAAE;IAC9B;;IAEA;IACA,MAAMC,WAAU,GAAIA,CAAA,KAAM;MACxB,IAAI5M,UAAU,CAACgC,KAAK,CAACU,MAAK,GAAI,CAAC,EAAE;MAEjC,MAAMmK,QAAO,GAAI7M,UAAU,CAACgC,KAAK,CAAChC,UAAU,CAACgC,KAAK,CAACU,MAAK,GAAI,CAAC;MAC7DtE,WAAW,CAAC4D,KAAK,CAAC0K,SAAS,CAAC,CAACG,QAAQ,CAAChK,GAAG,EAAEgK,QAAQ,CAAC/J,GAAG,CAAC;MACxD1E,WAAW,CAAC4D,KAAK,CAAC2K,OAAO,CAAC,EAAE;IAC9B;;IAEA;IACA,MAAMG,SAAQ,GAAIA,CAAA,KAAM;MACtB,IAAI9M,UAAU,CAACgC,KAAK,CAACU,MAAK,KAAM,CAAC,EAAE;MAEnC,MAAM4F,MAAK,GAAI,IAAKnG,MAAM,CAACD,IAAI,CAACmH,MAAM,CAAE;MACxCrJ,UAAU,CAACgC,KAAK,CAACwB,OAAO,CAACyG,KAAI,IAAK;QAChC3B,MAAM,CAACgB,MAAM,CAAC,CAACW,KAAK,CAACpH,GAAG,EAAEoH,KAAK,CAACnH,GAAG,CAAC;MACtC,CAAC;MAED1E,WAAW,CAAC4D,KAAK,CAACuH,SAAS,CAACjB,MAAM;IACpC;IAEAlL,SAAS,CAAC,MAAM;MACd;IAAA,CACD;IAED,OAAO;MACLc,YAAY;MACZC,WAAW;MACXE,OAAO;MACPG,YAAY;MACZF,UAAU;MACVC,aAAa;MACbG,WAAW;MACXU,cAAc;MACdP,iBAAiB;MACjBD,QAAQ;MACRE,WAAW;MACXC,YAAY;MACZC,iBAAiB;MACjBC,eAAe;MACfI,aAAa;MACbC,iBAAiB;MACjBC,QAAQ;MACRM,MAAM;MACNE,eAAe;MACfC,UAAU;MACVG,iBAAiB;MACjBC,cAAc;MACdC,WAAW;MACXC,QAAQ;MAER4C,cAAc;MACdpB,WAAW;MACXa,UAAU;MACVS,aAAa;MACbgD,YAAY;MACZN,qBAAqB;MACrBC,eAAe;MACfC,aAAa;MACbK,UAAU;MACVC,sBAAsB;MACtBC,uBAAuB;MACvBC,kBAAkB;MAClBE,uBAAuB;MACvBE,qBAAqB;MACrBE,WAAW;MACXiB,UAAU;MACVa,UAAU;MACVE,QAAQ;MACRC,cAAc;MACdC,aAAa;MACbC,qBAAqB;MACrBG,UAAU;MACVS,WAAW;MACXO,QAAQ;MACR6B,WAAW;MACXI,QAAQ;MACRC,WAAW;MACXE,aAAa;MACbI,WAAW;MACXE;IACF;EACF;AACF","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/src/components/SharedMap.vue b/Src/command_center/web-command-center/frontend/src/components/SharedMap.vue index 29c88322..5381c8b9 100644 --- a/Src/command_center/web-command-center/frontend/src/components/SharedMap.vue +++ b/Src/command_center/web-command-center/frontend/src/components/SharedMap.vue @@ -100,12 +100,8 @@ export default { version: '2.0', plugins: [ 'AMap.Scale', -<<<<<<< HEAD 'AMap.ToolBar', 'AMap.ControlBar', -======= - 'AMap.ToolBar', ->>>>>>> 999104f0d0174d3a3870682fb7163d95bc623970 'AMap.InfoWindow', 'AMap.Marker', 'AMap.Polyline', @@ -119,14 +115,11 @@ export default { 'AMap.TileLayer.Satellite', 'AMap.TileLayer.Traffic', 'AMap.TileLayer.RoadNet', -<<<<<<< HEAD 'AMap.Buildings', -======= - 'AMap.BuildingLayer', ->>>>>>> 999104f0d0174d3a3870682fb7163d95bc623970 'AMap.DistrictLayer', 'AMap.Weather', - 'AMap.Driving' + 'AMap.Driving', + 'AMap.PolyEditor' ] }) @@ -136,13 +129,8 @@ export default { mapInstance.value = new AMap.Map('sharedMap', { zoom: 11, center: [116.397428, 39.90923], -<<<<<<< HEAD viewMode: viewMode.value, pitch: viewMode.value === '3D' ? 45 : 0, -======= - viewMode: '3D', - pitch: 0, ->>>>>>> 999104f0d0174d3a3870682fb7163d95bc623970 rotation: 0, mapStyle: 'amap://styles/normal', features: ['bg', 'road', 'building', 'point'], @@ -172,7 +160,6 @@ export default { right: '10px' } }) -<<<<<<< HEAD // 添加3D控制条,用于控制3D视图的旋转、倾斜等 const controlBar = new AMap.ControlBar({ @@ -187,11 +174,6 @@ export default { mapInstance.value.addControl(toolbar) mapInstance.value.addControl(scale) mapInstance.value.addControl(controlBar) -======= - - mapInstance.value.addControl(toolbar) - mapInstance.value.addControl(scale) ->>>>>>> 999104f0d0174d3a3870682fb7163d95bc623970 // 添加地图事件监听 mapInstance.value.on('click', (e) => { @@ -217,11 +199,7 @@ export default { }); // 预初始化建筑图层 -<<<<<<< HEAD layerInstances.value.buildings = new window.AMap.Buildings({ -======= - layerInstances.value.buildings = new window.AMap.BuildingLayer({ ->>>>>>> 999104f0d0174d3a3870682fb7163d95bc623970 zIndex: 11, heightFactor: viewMode.value === '3D' ? 1 : 0.6 }); @@ -356,7 +334,6 @@ export default { const changeMapStyle = (style) => { if (!mapInstance.value) return -<<<<<<< HEAD try { currentMapStyle.value = style @@ -407,60 +384,11 @@ export default { } } -======= - switch (style) { - case 'satellite': - // 使用卫星图层 - if (!layerInstances.value.satellite) { - layerInstances.value.satellite = new window.AMap.TileLayer.Satellite() - } - mapInstance.value.setLayers([ - layerInstances.value.satellite, - ...getActiveOverlayLayers() - ]) - break - case 'dark': - // 使用暗黑样式 - mapInstance.value.setLayers([new window.AMap.TileLayer()]) - mapInstance.value.setMapStyle('amap://styles/dark') - updateOverlayLayers() // 再次应用叠加图层 - break - default: - // 使用标准样式 - mapInstance.value.setLayers([new window.AMap.TileLayer()]) - mapInstance.value.setMapStyle('amap://styles/normal') - updateOverlayLayers() // 再次应用叠加图层 - } - } - - // 获取当前启用的图层(辅助函数) - const getActiveOverlayLayers = () => { - const layers = [] - - if (!window.AMap) return layers - - if (overlayLayers.value.includes('buildings') && layerInstances.value.buildings) { - layers.push(layerInstances.value.buildings) - } - - if (overlayLayers.value.includes('traffic') && layerInstances.value.traffic) { - layers.push(layerInstances.value.traffic) - } - - if (overlayLayers.value.includes('terrain') && layerInstances.value.terrain) { - layers.push(layerInstances.value.terrain) - } - - return layers - } - ->>>>>>> 999104f0d0174d3a3870682fb7163d95bc623970 // 切换视图模式 const changeViewMode = (mode) => { if (!mapInstance.value) return try { -<<<<<<< HEAD // 设置视图模式 - 使用正确的API方法 if (mode === '3D') { // 设置为3D视图 @@ -472,21 +400,6 @@ export default { mapInstance.value.setViewMode('2D'); mapInstance.value.setPitch(0); // 平面视图 console.log('已切换到2D视图模式'); -======= - // 设置视图模式 - mapInstance.value.setViewMode(mode) - - // 根据模式设置俯仰角 - if (mode === '3D') { - // 在设置3D模式后,添加一个短暂延迟再设置俯仰角,以确保模式切换完成 - setTimeout(() => { - if (mapInstance.value) { - mapInstance.value.setPitch(45) // 设置俯仰角(3D效果) - } - }, 100) - } else { - mapInstance.value.setPitch(0) // 平面视图 ->>>>>>> 999104f0d0174d3a3870682fb7163d95bc623970 } // 重新加载建筑层以确保它在视图模式变化后正常显示 @@ -494,11 +407,7 @@ export default { if (layerInstances.value.buildings) { mapInstance.value.remove(layerInstances.value.buildings) } -<<<<<<< HEAD layerInstances.value.buildings = new window.AMap.Buildings({ -======= - layerInstances.value.buildings = new window.AMap.BuildingLayer({ ->>>>>>> 999104f0d0174d3a3870682fb7163d95bc623970 zIndex: 10, // 在3D模式下加强建筑物外观 heightFactor: mode === '3D' ? 1 : 0.6 @@ -510,11 +419,6 @@ export default { if (currentMapStyle.value === 'satellite') { changeMapStyle('satellite') } -<<<<<<< HEAD -======= - - console.log(`已切换到${mode}视图模式`) ->>>>>>> 999104f0d0174d3a3870682fb7163d95bc623970 } catch (error) { console.error('切换视图模式失败:', error) ElMessage.error(`切换到${mode}视图失败: ${error.message}`) @@ -525,7 +429,6 @@ export default { const updateOverlayLayers = () => { if (!mapInstance.value || !window.AMap) return -<<<<<<< HEAD try { console.log('更新图层状态:', overlayLayers.value) @@ -716,102 +619,6 @@ export default { return '天气' } -======= - // 交通流量图层 - if (overlayLayers.value.includes('traffic')) { - if (!layerInstances.value.traffic) { - layerInstances.value.traffic = new window.AMap.TileLayer.Traffic() - mapInstance.value.add(layerInstances.value.traffic) - } else if (!mapInstance.value.getLayers().includes(layerInstances.value.traffic)) { - mapInstance.value.add(layerInstances.value.traffic) - } - } else if (layerInstances.value.traffic) { - mapInstance.value.remove(layerInstances.value.traffic) - } - - // 建筑物图层 - if (overlayLayers.value.includes('buildings')) { - if (!layerInstances.value.buildings) { - layerInstances.value.buildings = new window.AMap.BuildingLayer() - mapInstance.value.add(layerInstances.value.buildings) - } else if (!mapInstance.value.getLayers().includes(layerInstances.value.buildings)) { - mapInstance.value.add(layerInstances.value.buildings) - } - } else if (layerInstances.value.buildings) { - mapInstance.value.remove(layerInstances.value.buildings) - } - - // 地形等高线图层 - if (overlayLayers.value.includes('terrain')) { - if (!layerInstances.value.terrain) { - // 创建地形图层 - layerInstances.value.terrain = new window.AMap.TileLayer({ - zIndex: 10, - getTileUrl: function(x, y, z) { - // 使用高德的地形瓦片服务 - return 'https://webst0' + (x % 4 + 1) + '.is.autonavi.com/appmaptile?style=6&x=' + x + '&y=' + y + '&z=' + z; - } - }); - mapInstance.value.add(layerInstances.value.terrain) - } else if (!mapInstance.value.getLayers().includes(layerInstances.value.terrain)) { - mapInstance.value.add(layerInstances.value.terrain) - } - } else if (layerInstances.value.terrain) { - mapInstance.value.remove(layerInstances.value.terrain) - } - - // 天气信息图层 - if (overlayLayers.value.includes('weather')) { - // 天气图层是一个动态图层,需要使用第三方服务或自定义实现 - // 这里使用一个模拟的天气图层进行演示 - if (!layerInstances.value.weather) { - try { - // 创建自定义天气图层 - 这里使用彩云天气API的实例 - const weatherLayer = new window.AMap.TileLayer({ - zIndex: 12, - opacity: 0.6, - getTileUrl: function(x, y, z) { - // 这是一个示例URL,实际使用需要替换为有效的天气服务API - return `https://api.caiyunapp.com/v1/weatherMap/radar/${z}/${x}/${y}.png`; - } - }); - - layerInstances.value.weather = weatherLayer; - - // 添加一个天气信息标记,作为示范 - const weatherInfo = new window.AMap.Marker({ - position: mapInstance.value.getCenter(), - content: `
-
气温: 26°C
-
天气: 晴
-
风力: 3级
-
`, - offset: new window.AMap.Pixel(-60, -40) - }); - - layerInstances.value.weatherInfo = weatherInfo; - mapInstance.value.add([weatherLayer, weatherInfo]); - } catch (error) { - console.error('天气图层创建失败:', error); - ElMessage.warning('天气信息图层加载失败,请稍后再试'); - } - } else if (!mapInstance.value.getLayers().includes(layerInstances.value.weather)) { - if (layerInstances.value.weatherInfo) { - mapInstance.value.add([layerInstances.value.weather, layerInstances.value.weatherInfo]); - } else { - mapInstance.value.add(layerInstances.value.weather); - } - } - } else if (layerInstances.value.weather) { - if (layerInstances.value.weatherInfo) { - mapInstance.value.remove([layerInstances.value.weather, layerInstances.value.weatherInfo]); - } else { - mapInstance.value.remove(layerInstances.value.weather); - } - } - } - ->>>>>>> 999104f0d0174d3a3870682fb7163d95bc623970 // 提供地图实例给子组件 provide('mapInstance', mapInstance) diff --git a/Src/command_center/web-command-center/frontend/src/store/index.js b/Src/command_center/web-command-center/frontend/src/store/index.js index 16802e16..b6934880 100644 --- a/Src/command_center/web-command-center/frontend/src/store/index.js +++ b/Src/command_center/web-command-center/frontend/src/store/index.js @@ -81,6 +81,9 @@ export default createStore({ // 根级别的无人机mutations SET_DRONES(state, drones) { state.drones = drones + }, + setDrones(state, drones) { + state.drones = drones } }, actions: { diff --git a/Src/command_center/web-command-center/frontend/src/views/MapView.vue b/Src/command_center/web-command-center/frontend/src/views/MapView.vue deleted file mode 100644 index 7e3e74bf..00000000 --- a/Src/command_center/web-command-center/frontend/src/views/MapView.vue +++ /dev/null @@ -1,1078 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/src/views/PathPlanningView.vue b/Src/command_center/web-command-center/frontend/src/views/PathPlanningView.vue deleted file mode 100644 index 7598db2a..00000000 --- a/Src/command_center/web-command-center/frontend/src/views/PathPlanningView.vue +++ /dev/null @@ -1,649 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/src/views/ThreatZoneView.vue b/Src/command_center/web-command-center/frontend/src/views/ThreatZoneView.vue deleted file mode 100644 index 9e6670e3..00000000 --- a/Src/command_center/web-command-center/frontend/src/views/ThreatZoneView.vue +++ /dev/null @@ -1,921 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Src/command_center/web-command-center/frontend/src/views/UnifiedMapView.vue b/Src/command_center/web-command-center/frontend/src/views/UnifiedMapView.vue index 24880081..d8403699 100644 --- a/Src/command_center/web-command-center/frontend/src/views/UnifiedMapView.vue +++ b/Src/command_center/web-command-center/frontend/src/views/UnifiedMapView.vue @@ -35,12 +35,16 @@ :threat-time-range="threatTimeRange" :visible-layers="visibleLayers" @on-threat-type-change="handleThreatTypeChange" + @on-threat-level-change="handleThreatLevelChange" @set-draw-mode="setDrawMode" @select-zone="selectZone" @delete-zone="deleteZone" @edit-zone="editZone" @clear-all-zones="clearAllZones" @update-layer-visibility="updateLayerVisibility" + @update-circle-radius="updateCircleRadius" + @update-threat-description="updateThreatDescription" + @update-threat-time-range="updateThreatTimeRange" @save-edited-zone="saveEditedZone" @fit-to-zones="fitToZones" /> @@ -68,6 +72,9 @@ @center-to-end="centerToEnd" @fit-to-path="fitToPath" @select-drone="selectDrone" + @update-planning-algorithm="updatePlanningAlgorithm" + @update-flight-altitude="updateFlightAltitude" + @update-flight-speed="updateFlightSpeed" /> @@ -145,9 +152,9 @@