From d464721a1c0e1386755a8b9fbc7b87fff2a0c427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=96=8C?= <259278618@qq.com> Date: Thu, 30 Jul 2026 15:33:54 +0800 Subject: [PATCH] 1 --- amap/service/poi_service.go | 2 +- web/dist/assets/{index-C3fajWoH.css => index-B11j1Ee9.css} | 2 +- web/dist/assets/{index-Bb-YnKrp.js => index-BhzmOGfg.js} | 2 +- web/dist/index.html | 4 ++-- web/src/App.vue | 1 + web/src/components/PoiMap.vue | 4 ++++ 6 files changed, 10 insertions(+), 5 deletions(-) rename web/dist/assets/{index-C3fajWoH.css => index-B11j1Ee9.css} (97%) rename web/dist/assets/{index-Bb-YnKrp.js => index-BhzmOGfg.js} (93%) diff --git a/amap/service/poi_service.go b/amap/service/poi_service.go index eae88e0..29f93bc 100644 --- a/amap/service/poi_service.go +++ b/amap/service/poi_service.go @@ -20,7 +20,7 @@ type poiService struct{} var PoiService = new(poiService) const ( - maxOffset = 25 // 高德API单页最大条数 + maxOffset = 20 // 每页展示条数 maxPage = 100 // 高德API最大页数 ) diff --git a/web/dist/assets/index-C3fajWoH.css b/web/dist/assets/index-B11j1Ee9.css similarity index 97% rename from web/dist/assets/index-C3fajWoH.css rename to web/dist/assets/index-B11j1Ee9.css index b30b778..cae04a1 100644 --- a/web/dist/assets/index-C3fajWoH.css +++ b/web/dist/assets/index-B11j1Ee9.css @@ -1 +1 @@ -.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.map-container[data-v-e60bcf90]{width:100%;height:100%;min-height:400px}[data-v-e60bcf90] .leaflet-control-zoom{margin-top:0!important}[data-v-e60bcf90] .leaflet-top.leaflet-left{top:50%;transform:translateY(-50%);position:absolute;z-index:1000}[data-v-e60bcf90] .map-popup h4{margin:0 0 4px;font-size:14px;color:#333}[data-v-e60bcf90] .popup-phone{margin:2px 0;font-size:15px;font-weight:600;color:#1a73e8}[data-v-e60bcf90] .popup-phone a{color:#1a73e8;text-decoration:none}[data-v-e60bcf90] .popup-addr{margin:2px 0;font-size:12px;color:#888}[data-v-e60bcf90] .popup-area{margin:2px 0;font-size:12px;color:#999}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#333}.app{width:100%;height:100%;position:relative}.top-bar{position:absolute;top:16px;left:16px;right:380px;z-index:1000;pointer-events:none}.search-form{display:flex;gap:10px;background:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 2px 12px #00000026;pointer-events:auto;max-width:700px;position:relative}.input{flex:1;padding:9px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s}.input:focus{border-color:#1a73e8}.input-wrap{position:relative;flex:1}.input-wrap .input{width:100%}.suggest-dropdown{position:absolute;top:100%;left:-16px;right:-16px;margin:4px 0 0;padding:4px 0;list-style:none;background:#fff;border:1px solid #e5e7eb;border-radius:0 0 10px 10px;box-shadow:0 4px 16px #0000001f;z-index:2000;max-height:320px;overflow-y:auto}.suggest-item{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;font-size:13px;cursor:pointer;transition:background .1s}.suggest-item.active,.suggest-item:hover{background:#f0f5ff}.suggest-name{color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggest-city{flex-shrink:0;margin-left:8px;font-size:11px;color:#999}.select{padding:9px 10px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;background:#fff;cursor:pointer;transition:border-color .2s}.select:focus{border-color:#1a73e8}.province-select,.city-select{max-width:110px}.radius-select{max-width:90px}.btn{padding:9px 24px;background:#1a73e8;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;white-space:nowrap;transition:background .2s}.btn:hover:not(:disabled){background:#1557b0}.btn:disabled{opacity:.6;cursor:not-allowed}.center-badge{margin-top:8px;display:inline-flex;align-items:center;gap:6px;background:#fffffff2;padding:5px 12px;border-radius:20px;font-size:12px;color:#1a73e8;box-shadow:0 1px 6px #0000001f;pointer-events:auto}.clear-center{background:none;border:none;font-size:16px;cursor:pointer;color:#999;line-height:1}.clear-center:hover{color:#dc2626}.side-panel{position:absolute;top:80px;right:16px;width:350px;max-height:calc(100% - 100px);background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001f;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px;border-bottom:1px solid #f0f0f0}.panel-title{font-size:14px;font-weight:600;color:#333}.panel-page{font-size:12px;color:#999}.panel-list{flex:1;overflow-y:auto;padding:8px}.result-card{padding:12px;border-radius:8px;cursor:pointer;transition:background .15s;margin-bottom:4px}.result-card:hover{background:#f5f7fa}.result-card.active{background:#e8f0fe;border-left:3px solid #1a73e8}.card-name{font-size:14px;font-weight:600;margin-bottom:3px}.card-phone{font-size:15px;color:#1a73e8;font-weight:600;margin-bottom:2px}.card-addr{font-size:12px;color:#888}.panel-footer{display:flex;gap:8px;justify-content:center;padding:10px 16px 14px;border-top:1px solid #f0f0f0}.page-btn{flex:1;padding:7px 0;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:13px;cursor:pointer;transition:all .15s}.page-btn:hover:not(:disabled){border-color:#1a73e8;color:#1a73e8}.page-btn:disabled{opacity:.35;cursor:not-allowed}.panel-loading,.panel-error,.panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;text-align:center;color:#888;font-size:14px}.panel-error{color:#dc2626}.panel-empty small{font-size:12px;margin-top:4px}.spinner{width:22px;height:22px;border:3px solid #e5e7eb;border-top-color:#1a73e8;border-radius:50%;animation:spin .7s linear infinite;margin-bottom:8px}@keyframes spin{to{transform:rotate(360deg)}}.hint-bar{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;background:#0000008c;color:#fff;padding:6px 18px;border-radius:20px;font-size:12px;pointer-events:none;white-space:nowrap} +.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.map-container[data-v-42493946]{width:100%;height:100%;min-height:400px}[data-v-42493946] .leaflet-control-zoom{margin-top:0!important}[data-v-42493946] .leaflet-top.leaflet-left{top:50%;transform:translateY(-50%);position:absolute;z-index:1000}[data-v-42493946] .map-popup h4{margin:0 0 4px;font-size:14px;color:#333}[data-v-42493946] .popup-phone{margin:2px 0;font-size:15px;font-weight:600;color:#1a73e8}[data-v-42493946] .popup-phone a{color:#1a73e8;text-decoration:none}[data-v-42493946] .popup-addr{margin:2px 0;font-size:12px;color:#888}[data-v-42493946] .popup-area{margin:2px 0;font-size:12px;color:#999}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#333}.app{width:100%;height:100%;position:relative}.top-bar{position:absolute;top:16px;left:16px;right:380px;z-index:1000;pointer-events:none}.search-form{display:flex;gap:10px;background:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 2px 12px #00000026;pointer-events:auto;max-width:700px;position:relative}.input{flex:1;padding:9px 14px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s}.input:focus{border-color:#1a73e8}.input-wrap{position:relative;flex:1}.input-wrap .input{width:100%}.suggest-dropdown{position:absolute;top:100%;left:-16px;right:-16px;margin:4px 0 0;padding:4px 0;list-style:none;background:#fff;border:1px solid #e5e7eb;border-radius:0 0 10px 10px;box-shadow:0 4px 16px #0000001f;z-index:2000;max-height:320px;overflow-y:auto}.suggest-item{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;font-size:13px;cursor:pointer;transition:background .1s}.suggest-item.active,.suggest-item:hover{background:#f0f5ff}.suggest-name{color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggest-city{flex-shrink:0;margin-left:8px;font-size:11px;color:#999}.select{padding:9px 10px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;background:#fff;cursor:pointer;transition:border-color .2s}.select:focus{border-color:#1a73e8}.province-select,.city-select{max-width:110px}.radius-select{max-width:90px}.btn{padding:9px 24px;background:#1a73e8;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;white-space:nowrap;transition:background .2s}.btn:hover:not(:disabled){background:#1557b0}.btn:disabled{opacity:.6;cursor:not-allowed}.center-badge{margin-top:8px;display:inline-flex;align-items:center;gap:6px;background:#fffffff2;padding:5px 12px;border-radius:20px;font-size:12px;color:#1a73e8;box-shadow:0 1px 6px #0000001f;pointer-events:auto}.clear-center{background:none;border:none;font-size:16px;cursor:pointer;color:#999;line-height:1}.clear-center:hover{color:#dc2626}.side-panel{position:absolute;top:80px;right:16px;width:350px;max-height:calc(100% - 100px);background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001f;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px;border-bottom:1px solid #f0f0f0}.panel-title{font-size:14px;font-weight:600;color:#333}.panel-page{font-size:12px;color:#999}.panel-list{flex:1;overflow-y:auto;padding:8px}.result-card{padding:12px;border-radius:8px;cursor:pointer;transition:background .15s;margin-bottom:4px}.result-card:hover{background:#f5f7fa}.result-card.active{background:#e8f0fe;border-left:3px solid #1a73e8}.card-name{font-size:14px;font-weight:600;margin-bottom:3px}.card-phone{font-size:15px;color:#1a73e8;font-weight:600;margin-bottom:2px}.card-addr{font-size:12px;color:#888}.panel-footer{display:flex;gap:8px;justify-content:center;padding:10px 16px 14px;border-top:1px solid #f0f0f0}.page-btn{flex:1;padding:7px 0;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:13px;cursor:pointer;transition:all .15s}.page-btn:hover:not(:disabled){border-color:#1a73e8;color:#1a73e8}.page-btn:disabled{opacity:.35;cursor:not-allowed}.panel-loading,.panel-error,.panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;text-align:center;color:#888;font-size:14px}.panel-error{color:#dc2626}.panel-empty small{font-size:12px;margin-top:4px}.spinner{width:22px;height:22px;border:3px solid #e5e7eb;border-top-color:#1a73e8;border-radius:50%;animation:spin .7s linear infinite;margin-bottom:8px}@keyframes spin{to{transform:rotate(360deg)}}.hint-bar{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;background:#0000008c;color:#fff;padding:6px 18px;border-radius:20px;font-size:12px;pointer-events:none;white-space:nowrap} diff --git a/web/dist/assets/index-Bb-YnKrp.js b/web/dist/assets/index-BhzmOGfg.js similarity index 93% rename from web/dist/assets/index-Bb-YnKrp.js rename to web/dist/assets/index-BhzmOGfg.js index 8b09d22..6f46129 100644 --- a/web/dist/assets/index-Bb-YnKrp.js +++ b/web/dist/assets/index-BhzmOGfg.js @@ -35,4 +35,4 @@ ${B.businessArea?``:""} - `),st.on("click",()=>{d("marker-click",B)}),c.push(st)})}function O(S){const k=parseFloat(S.latitude),B=parseFloat(S.longitude);if(!(isNaN(k)||isNaN(B)))for(const D of c){const tt=D.getLatLng();if(Math.abs(tt.lat-k)<.001&&Math.abs(tt.lng-B)<.001){D.openPopup();break}}}function N(S,k,B){a&&a.setView([S,k],B||12)}function V(S,k,B){A(),a&&(f=Hn.circle([S,k],{radius:B,color:"#1a73e8",fillColor:"#1a73e8",fillOpacity:.08,weight:2,dashArray:"6, 6"}).addTo(a))}function A(){f&&(a.removeLayer(f),f=null)}function j(S){f&&f.setRadius(S)}return i({addMarkers:y,clearMarkers:_,focusMarker:O,drawRadiusCircle:V,clearRadiusCircle:A,updateRadiusCircle:j,flyTo:N}),(S,k)=>(Zt(),jt("div",{ref_key:"mapContainer",ref:r,class:"map-container"},null,512))}},um=rm(lm,[["__scopeId","data-v-e60bcf90"]]),cm={class:"app"},hm={class:"top-bar"},fm={class:"search-form"},dm={class:"input-wrap"},pm={key:0,class:"suggest-dropdown"},_m=["onMousedown","onMouseenter"],mm={class:"suggest-name"},gm={key:0,class:"suggest-city"},vm=["value"],ym=["disabled"],wm={value:""},bm=["value"],xm=["value"],Pm=["disabled"],Tm={key:0,class:"center-badge"},Sm={key:0,class:"panel-loading"},Lm={key:1,class:"panel-error"},Em={key:2,class:"panel-empty"},Om={class:"panel-header"},Cm={class:"panel-title"},Am={class:"panel-page"},Rm={class:"panel-list"},Mm=["onClick"],Im={class:"card-name"},km={class:"card-phone"},Bm={class:"card-addr"},Nm={class:"panel-footer"},zm=["disabled"],Dm=["disabled"],Fm={__name:"App",setup(e){const i=Ut(null),s=Ut(""),r=Ut(""),a=Ut(3e3),u=Ut(0),c=Ut(0),f=Ut([]),d=Ut(0),g=Ut(!1),_=Ut(!1),y=Ut(""),O=Ut(1),N=Ut(1),V=Ut(null),A=Ut([]),j=Ut(-1);let S=null;const k=Ut(""),B=["北京","天津","上海","重庆","广东","浙江","江苏","福建","山东","四川","湖北","湖南","河南","河北","安徽","江西","陕西","山西","辽宁","吉林","黑龙江","广西","内蒙古","西藏","新疆","宁夏","青海","甘肃","贵州","云南","海南"],D={北京:["北京"],天津:["天津"],上海:["上海"],重庆:["重庆"],广东:["广州","深圳","东莞","佛山","珠海","中山","惠州","汕头","江门","湛江","肇庆","茂名","揭阳","梅州","清远","韶关","阳江","河源","汕尾","潮州","云浮"],浙江:["杭州","宁波","温州","绍兴","嘉兴","金华","台州","湖州","衢州","舟山","丽水"],江苏:["南京","苏州","无锡","常州","南通","徐州","扬州","盐城","淮安","连云港","镇江","泰州","宿迁"],福建:["福州","厦门","泉州","漳州","莆田","宁德","龙岩","三明","南平"],山东:["济南","青岛","烟台","潍坊","临沂","淄博","济宁","威海","泰安","德州","聊城","东营","枣庄","日照","滨州","菏泽"],四川:["成都","绵阳","德阳","宜宾","南充","泸州","自贡","乐山","眉山","达州","内江","遂宁","广安","攀枝花","资阳","广元","雅安","巴中"],湖北:["武汉","襄阳","宜昌","荆州","黄冈","十堰","孝感","荆门","鄂州","黄石","咸宁","随州"],湖南:["长沙","株洲","湘潭","衡阳","岳阳","常德","益阳","邵阳","郴州","怀化","永州","娄底","湘西"],河南:["郑州","洛阳","南阳","许昌","周口","新乡","安阳","开封","商丘","信阳","驻马店","平顶山","焦作","濮阳","三门峡","漯河","鹤壁"],河北:["石家庄","唐山","保定","邯郸","沧州","廊坊","秦皇岛","张家口","衡水","邢台","承德"],安徽:["合肥","芜湖","安庆","阜阳","滁州","马鞍山","蚌埠","宿州","六安","宣城","铜陵","池州","淮南","淮北","黄山"],江西:["南昌","赣州","九江","宜春","吉安","上饶","抚州","萍乡","景德镇","新余","鹰潭"],陕西:["西安","咸阳","宝鸡","渭南","汉中","延安","榆林","安康","商洛","铜川"],山西:["太原","大同","长治","临汾","晋中","运城","晋城","吕梁","忻州","阳泉","朔州"],辽宁:["沈阳","大连","鞍山","抚顺","锦州","营口","盘锦","丹东","本溪","辽阳","朝阳","阜新","葫芦岛","铁岭"],吉林:["长春","吉林","延边","四平","通化","松原","白城","辽源","白山"],黑龙江:["哈尔滨","大庆","齐齐哈尔","牡丹江","佳木斯","绥化","鸡西","鹤岗","双鸭山","伊春","七台河","黑河","大兴安岭"],广西:["南宁","桂林","柳州","北海","玉林","百色","梧州","贵港","钦州","河池","防城港","崇左","来宾","贺州"],内蒙古:["呼和浩特","包头","赤峰","鄂尔多斯","通辽","呼伦贝尔","乌兰察布","巴彦淖尔","兴安","锡林郭勒","阿拉善"],西藏:["拉萨","日喀则","昌都","林芝","山南","那曲","阿里"],新疆:["乌鲁木齐","克拉玛依","吐鲁番","哈密","昌吉","伊犁","喀什","阿克苏","和田","塔城","阿勒泰","博尔塔拉","巴音郭楞","克孜勒苏"],宁夏:["银川","石嘴山","吴忠","固原","中卫"],青海:["西宁","海东","海西","海南","海北","黄南","玉树","果洛"],甘肃:["兰州","天水","白银","金昌","嘉峪关","武威","张掖","平凉","酒泉","庆阳","定西","陇南","临夏","甘南"],贵州:["贵阳","遵义","六盘水","安顺","毕节","铜仁","黔东南","黔南","黔西南"],云南:["昆明","大理","丽江","曲靖","玉溪","红河","楚雄","普洱","昭通","文山","西双版纳","保山","德宏","临沧","怒江","迪庆"],海南:["海口","三亚","儋州","三沙","琼海","文昌","万宁","陵水","五指山"]},tt=Su(()=>D[k.value]||[]),st={北京:[39.9042,116.4074],天津:[39.1252,117.1908],上海:[31.2304,121.4737],重庆:[29.4316,106.9123],广州:[23.1291,113.2644],深圳:[22.5431,114.0579],东莞:[23.0208,113.7518],佛山:[23.0219,113.1219],珠海:[22.271,113.5767],中山:[22.515,113.3926],惠州:[23.111,114.4162],汕头:[23.3545,116.6822],江门:[22.5786,113.0945],湛江:[21.2713,110.3594],肇庆:[23.0469,112.4653],茂名:[21.663,110.9252],揭阳:[23.5499,116.3727],梅州:[24.2884,116.1176],清远:[23.681,113.056],韶关:[24.8104,113.5975],阳江:[21.8583,111.9822],河源:[23.7437,114.7009],汕尾:[22.787,115.3753],潮州:[23.6564,116.63],云浮:[22.915,112.0445],杭州:[30.2741,120.1551],宁波:[29.8683,121.544],温州:[28,120.6994],绍兴:[30.03,120.58],嘉兴:[30.7711,120.7551],金华:[29.0792,119.6474],台州:[28.6562,121.4208],湖州:[30.8931,120.0875],衢州:[28.9359,118.8742],舟山:[29.9855,122.2076],丽水:[28.468,119.9228],南京:[32.0603,118.7969],苏州:[31.299,120.5853],无锡:[31.491,120.3119],常州:[31.8107,119.9737],南通:[31.9798,120.8938],徐州:[34.2044,117.2858],扬州:[32.3937,119.4126],盐城:[33.3876,120.1633],淮安:[33.5516,119.1131],连云港:[34.5969,119.2215],镇江:[32.1898,119.4251],泰州:[32.4555,119.9227],宿迁:[33.963,118.2755],福州:[26.0745,119.2965],厦门:[24.4798,118.0895],泉州:[24.8741,118.6756],漳州:[24.5134,117.647],莆田:[25.454,119.0077],宁德:[26.6657,119.5479],龙岩:[25.0751,117.017],三明:[26.2634,117.6392],南平:[26.6417,118.1779],济南:[36.6512,116.9972],青岛:[36.0671,120.3826],烟台:[37.4645,121.4479],潍坊:[36.7068,119.1618],临沂:[35.1046,118.3564],淄博:[36.8135,118.055],济宁:[35.4148,116.5872],威海:[37.5133,122.121],泰安:[36.1994,117.0875],德州:[37.4363,116.3594],聊城:[36.4568,115.9854],东营:[37.4341,118.6746],枣庄:[34.8105,117.3211],日照:[35.4204,119.5272],滨州:[37.3819,117.9724],菏泽:[35.2337,115.4812],成都:[30.5728,104.0668],绵阳:[31.4675,104.6791],德阳:[31.1268,104.398],宜宾:[28.7519,104.6417],南充:[30.7991,106.0827],泸州:[28.8717,105.443],自贡:[29.339,104.7784],乐山:[29.5527,103.7654],眉山:[30.0595,103.8265],达州:[31.2091,107.4677],内江:[29.5802,105.0584],遂宁:[30.5329,105.5929],广安:[30.456,106.6332],攀枝花:[26.5823,101.7186],资阳:[30.1286,104.6276],广元:[32.4355,105.845],雅安:[29.9765,103.0094],巴中:[31.8674,106.7477],武汉:[30.5928,114.3055],襄阳:[32.009,112.1226],宜昌:[30.692,111.2864],荆州:[30.3345,112.2407],黄冈:[30.4544,114.8724],十堰:[32.6319,110.7939],孝感:[30.9178,113.9168],荆门:[31.0354,112.1992],鄂州:[30.3908,114.895],黄石:[30.201,115.0769],咸宁:[29.8327,114.3222],随州:[31.6902,113.3826],长沙:[28.2282,112.9388],株洲:[27.8278,113.1339],湘潭:[27.8298,112.9442],衡阳:[26.8932,112.572],岳阳:[29.3572,113.1288],常德:[29.0316,111.6985],益阳:[28.5889,112.3551],邵阳:[27.2389,111.4673],郴州:[25.7705,113.0145],怀化:[27.5697,109.9985],永州:[26.4207,111.6132],娄底:[27.7,112.0004],湘西:[28.3118,109.7394],郑州:[34.747,113.6247],洛阳:[34.6202,112.4545],南阳:[32.9908,112.5286],许昌:[34.0355,113.8523],周口:[33.626,114.6473],新乡:[35.3036,113.9269],安阳:[36.0969,114.3931],开封:[34.7973,114.3073],商丘:[34.414,115.6554],信阳:[32.1471,114.0932],驻马店:[32.9815,114.022],平顶山:[33.7662,113.1924],焦作:[35.2159,113.2418],濮阳:[35.7624,115.0297],三门峡:[34.7731,111.1999],漯河:[33.5814,114.0165],鹤壁:[35.8995,114.2975],石家庄:[38.0423,114.5145],唐山:[39.6303,118.1824],保定:[38.8739,115.4646],邯郸:[36.6256,114.5391],沧州:[38.3044,116.8387],廊坊:[39.5379,116.6838],秦皇岛:[39.8891,119.5997],张家口:[40.768,114.8862],衡水:[37.7389,115.6707],邢台:[37.0736,114.5047],承德:[40.9495,117.9593],合肥:[31.8206,117.2272],芜湖:[31.3525,118.4329],安庆:[30.5429,117.0635],阜阳:[32.8901,115.8141],滁州:[32.3019,118.3071],马鞍山:[31.6714,118.5071],蚌埠:[32.9188,117.3894],宿州:[33.6476,116.9639],六安:[31.7331,116.5199],宣城:[30.9404,118.7587],铜陵:[30.8789,117.8107],池州:[30.6648,117.4916],淮南:[32.6261,116.9997],淮北:[33.9653,116.7985],黄山:[29.7153,118.337],南昌:[28.6829,115.8582],赣州:[25.831,114.9356],九江:[29.6619,115.9973],宜春:[27.8143,114.4161],吉安:[27.113,114.9934],上饶:[28.4546,117.9435],抚州:[27.9479,116.3581],萍乡:[27.6229,113.8548],景德镇:[29.2686,117.1784],新余:[27.8178,114.9171],鹰潭:[28.2588,117.0692],西安:[34.3416,108.9398],咸阳:[34.3293,108.7092],宝鸡:[34.3621,107.2373],渭南:[34.5205,109.5103],汉中:[33.0677,107.0236],延安:[36.5854,109.4888],榆林:[38.2855,109.7345],安康:[32.6849,109.0291],商洛:[33.8683,109.9202],铜川:[34.897,108.9451],太原:[37.8706,112.5499],大同:[40.0769,113.3001],长治:[36.1954,113.1164],临汾:[36.088,111.5193],晋中:[37.6875,112.7528],运城:[35.0265,111.007],晋城:[35.4905,112.8513],吕梁:[37.5193,111.1446],忻州:[38.417,112.734],阳泉:[37.8568,113.5803],朔州:[39.3315,112.4327],沈阳:[41.8057,123.4315],大连:[38.914,121.6148],鞍山:[41.1078,122.9945],抚顺:[41.8796,123.9572],锦州:[41.0952,121.127],营口:[40.6241,122.2351],盘锦:[41.1198,122.0708],丹东:[40.0024,124.3567],本溪:[41.487,123.7716],辽阳:[41.2691,123.2378],朝阳:[41.5737,120.4508],阜新:[42.021,121.6703],葫芦岛:[40.7109,120.8372],铁岭:[42.286,123.8426],长春:[43.896,125.3265],吉林:[43.8379,126.5493],延边:[42.8907,129.5094],四平:[43.1639,124.3504],通化:[41.7278,125.9395],松原:[45.141,124.8255],白城:[45.6193,122.8389],辽源:[42.8877,125.1437],白山:[41.9406,126.4244],哈尔滨:[45.8038,126.535],大庆:[46.5967,125.1041],齐齐哈尔:[47.3543,123.918],牡丹江:[44.5528,129.6186],佳木斯:[46.7998,130.3194],绥化:[46.6368,126.9692],鸡西:[45.2953,130.9661],鹤岗:[47.3499,130.2978],双鸭山:[46.6467,131.1585],伊春:[47.7277,128.8404],七台河:[45.7708,131.0153],黑河:[50.2454,127.5284],大兴安岭:[50.5506,126.205],南宁:[22.817,108.3665],桂林:[25.2344,110.1798],柳州:[24.3249,109.428],北海:[21.4679,109.1197],玉林:[22.6529,110.1411],百色:[23.902,106.6184],梧州:[23.4769,111.2786],贵港:[23.1131,109.598],钦州:[21.9799,108.6541],河池:[24.6929,108.0854],防城港:[21.6869,108.3783],崇左:[22.3795,107.3652],来宾:[23.7332,109.2213],贺州:[24.4035,111.5667],呼和浩特:[40.8422,111.7498],包头:[40.6571,109.8402],赤峰:[42.2576,118.8888],鄂尔多斯:[39.6083,109.7809],通辽:[43.653,122.2445],呼伦贝尔:[49.2,119.76],乌兰察布:[40.9935,113.131],巴彦淖尔:[40.7274,107.3862],兴安:[46.082,122.038],锡林郭勒:[43.9335,116.048],阿拉善:[38.8483,105.6878],拉萨:[29.65,91.1],日喀则:[29.267,88.881],昌都:[31.14,97.17],林芝:[29.65,94.36],山南:[29.23,91.77],那曲:[31.47,92.06],阿里:[30.4,81.14],乌鲁木齐:[43.8256,87.6168],克拉玛依:[45.575,84.882],吐鲁番:[42.94,89.19],哈密:[42.82,93.51],昌吉:[44.013,87.305],伊犁:[43.92,81.32],喀什:[39.47,75.99],阿克苏:[41.17,80.26],和田:[37.11,79.92],塔城:[46.75,82.98],阿勒泰:[47.87,88.14],博尔塔拉:[44.9,82.07],巴音郭楞:[41.77,86.15],克孜勒苏:[39.71,76.17],银川:[38.471,106.259],石嘴山:[38.986,106.385],吴忠:[37.999,106.201],固原:[36.017,106.286],中卫:[37.517,105.196],西宁:[36.623,101.78],海东:[36.502,102.104],海西:[37.373,97.371],海南:[36.28,100.62],海北:[36.96,100.9],黄南:[35.52,102.02],玉树:[33,97.01],果洛:[34.48,100.24],兰州:[36.0611,103.8343],天水:[34.5811,105.725],白银:[36.5447,104.1382],金昌:[38.521,102.188],嘉峪关:[39.773,98.29],武威:[37.9277,102.6379],张掖:[38.9349,100.4599],平凉:[35.5434,106.6682],酒泉:[39.7368,98.494],庆阳:[35.71,107.644],定西:[35.58,104.625],陇南:[33.37,104.92],临夏:[35.6,103.21],甘南:[34.99,102.91],贵阳:[26.647,106.6302],遵义:[27.7254,106.927],六盘水:[26.5927,104.83],安顺:[26.2537,105.9462],毕节:[27.302,105.29],铜仁:[27.73,109.18],黔东南:[26.58,107.97],黔南:[26.26,107.52],黔西南:[25.09,104.9],昆明:[25.0389,102.7183],大理:[25.6065,100.228],丽江:[26.872,100.23],曲靖:[25.49,103.8],玉溪:[24.352,102.547],红河:[23.37,103.38],楚雄:[25.04,101.54],普洱:[22.83,100.97],昭通:[27.34,103.72],文山:[23.38,104.24],西双版纳:[22.01,100.8],保山:[25.12,99.17],德宏:[24.44,98.59],临沧:[23.89,100.09],怒江:[25.85,98.86],迪庆:[27.82,99.71],海口:[20.044,110.35],三亚:[18.254,109.502],儋州:[19.521,109.581],三沙:[16.83,112.34],琼海:[19.259,110.466],文昌:[19.544,110.798],万宁:[18.797,110.389],陵水:[18.506,110.037],五指山:[18.775,109.517]},At=[{value:1e3,label:"1km"},{value:3e3,label:"3km"},{value:5e3,label:"5km"},{value:1e4,label:"10km"},{value:2e4,label:"20km"},{value:5e4,label:"50km"}];xi(r,(U,z)=>{if(!U||U===z||!i.value)return;const W=st[U];W&&(u.value=0,c.value=0,i.value.clearRadiusCircle(),i.value.flyTo(W[0],W[1]))}),xi(a,U=>{c.value&&u.value&&i.value&&i.value.updateRadiusCircle(U)});async function Wt(U){if(!U.trim()){A.value=[];return}try{const z=await em(U,r.value);A.value=(z.tips||[]).slice(0,8),j.value=-1}catch{A.value=[]}}function ne(){clearTimeout(S),S=setTimeout(()=>Wt(s.value),200)}function Rt(){A.value=[],j.value=-1}function vt(){setTimeout(Rt,150)}function Ct(U){const z=A.value.length;z!==0&&(j.value=(j.value+U+z)%z)}function xe(U){if(s.value=U.name,Rt(),U.longitude&&U.latitude){const z=parseFloat(U.latitude),W=parseFloat(U.longitude);!isNaN(z)&&!isNaN(W)&&(u.value=z,c.value=W)}wt()}async function wt(){var W,mt;y.value="";const U=s.value.trim(),z=c.value&&u.value;if(!U&&!z){y.value="请输入关键词或点击地图选择搜索范围",_.value=!0;return}if(i.value){if(z)i.value.flyTo(u.value,c.value,14);else if(r.value&&st[r.value]){const rt=st[r.value];i.value.flyTo(rt[0],rt[1],12)}}g.value=!0,_.value=!0,V.value=null;try{const rt=await tm(U,r.value,O.value,c.value,u.value,a.value);f.value=rt.list||[],d.value=rt.total||0,N.value=rt.maxPage||1,O.value=rt.page||1,i.value&&f.value.length>0&&i.value.addMarkers(f.value)}catch(rt){y.value=((mt=(W=rt.response)==null?void 0:W.data)==null?void 0:mt.message)||rt.message||"请求失败",f.value=[],d.value=0,N.value=1}finally{g.value=!1}}function Pe(U){V.value=U,i.value&&i.value.focusMarker(U)}function ct(U){V.value=U}function ft({lat:U,lng:z}){u.value=U,c.value=z,k.value="",r.value="",i.value&&i.value.drawRadiusCircle(U,z,a.value)}function $(){u.value=0,c.value=0,i.value&&i.value.clearRadiusCircle()}function ie(){r.value=""}return(U,z)=>(Zt(),jt("div",cm,[He(um,{ref_key:"mapRef",ref:i,onMarkerClick:ct,onMapClick:ft},null,512),_t("div",hm,[_t("div",fm,[_t("div",dm,[ls(_t("input",{"onUpdate:modelValue":z[0]||(z[0]=W=>s.value=W),class:"input",placeholder:"关键词(选填,如:火锅店)",onInput:ne,onCompositionend:ne,onKeydown:[z[1]||(z[1]=cs(W=>{wt(),Rt()},["enter"])),z[2]||(z[2]=cs(Ro(W=>Ct(1),["prevent"]),["down"])),z[3]||(z[3]=cs(Ro(W=>Ct(-1),["prevent"]),["up"])),cs(Rt,["esc"])],onBlur:vt,autocomplete:"off"},null,544),[[Bd,s.value]])]),A.value.length>0?(Zt(),jt("ul",pm,[(Zt(!0),jt(ae,null,di(A.value,(W,mt)=>(Zt(),jt("li",{key:W.poiId||mt,class:Vn(["suggest-item",{active:mt===j.value}]),onMousedown:Ro(rt=>xe(W),["prevent"]),onMouseenter:rt=>j.value=mt},[_t("span",mm,$t(W.name),1),W.city?(Zt(),jt("span",gm,$t(W.city),1)):us("",!0)],42,_m))),128))])):us("",!0),ls(_t("select",{"onUpdate:modelValue":z[4]||(z[4]=W=>k.value=W),class:"select province-select",onChange:ie},[z[9]||(z[9]=_t("option",{value:""},"所有省份",-1)),(Zt(),jt(ae,null,di(B,W=>_t("option",{key:W,value:W},$t(W),9,vm)),64))],544),[[Ao,k.value]]),ls(_t("select",{"onUpdate:modelValue":z[5]||(z[5]=W=>r.value=W),class:"select city-select",disabled:!k.value},[_t("option",wm,$t(k.value?"所有城市":"请先选省份"),1),(Zt(!0),jt(ae,null,di(tt.value,W=>(Zt(),jt("option",{key:W,value:W},$t(W),9,bm))),128))],8,ym),[[Ao,r.value]]),ls(_t("select",{"onUpdate:modelValue":z[6]||(z[6]=W=>a.value=W),class:"select radius-select"},[(Zt(),jt(ae,null,di(At,W=>_t("option",{key:W.value,value:W.value},$t(W.label),9,xm)),64))],512),[[Ao,a.value]]),_t("button",{class:"btn",disabled:g.value,onClick:wt},$t(g.value?"搜索中...":"搜索"),9,Pm)]),u.value||c.value?(Zt(),jt("div",Tm,[_t("span",null,"中心点:"+$t(c.value.toFixed(4))+", "+$t(u.value.toFixed(4)),1),_t("button",{class:"clear-center",onClick:$},"×")])):us("",!0)]),_.value?(Zt(),jt("div",{key:0,class:Vn(["side-panel",{"has-results":f.value.length>0}])},[g.value?(Zt(),jt("div",Sm,[...z[10]||(z[10]=[_t("div",{class:"spinner"},null,-1),_t("span",null,"正在查询...",-1)])])):y.value?(Zt(),jt("div",Lm,$t(y.value),1)):f.value.length===0?(Zt(),jt("div",Em,[...z[11]||(z[11]=[xu(" 未找到相关商户",-1),_t("br",null,null,-1),_t("small",null,"请尝试其他关键词",-1)])])):(Zt(),jt(ae,{key:3},[_t("div",Om,[_t("span",Cm,"共 "+$t(d.value)+" 条结果",1),_t("span",Am,"第 "+$t(O.value)+"/"+$t(N.value)+" 页",1)]),_t("div",Rm,[(Zt(!0),jt(ae,null,di(f.value,W=>(Zt(),jt("div",{key:W.poiId,class:Vn(["result-card",{active:V.value&&V.value.poiId===W.poiId}]),onClick:mt=>Pe(W)},[_t("div",Im,$t(W.name),1),_t("div",km,$t(W.phone||"暂无电话"),1),_t("div",Bm,$t(W.address),1)],10,Mm))),128))]),_t("div",Nm,[_t("button",{class:"page-btn",disabled:O.value<=1,onClick:z[7]||(z[7]=W=>{O.value--,wt()})},"上一页",8,zm),_t("button",{class:"page-btn",disabled:O.value>=N.value,onClick:z[8]||(z[8]=W=>{O.value++,wt()})},"下一页",8,Dm)])],64))],2)):us("",!0),z[12]||(z[12]=_t("div",{class:"hint-bar"},[_t("span",null,"点击地图设置搜索中心点")],-1))]))}};Hd(Fm).mount("#app"); + `),st.on("click",()=>{d("marker-click",B)}),c.push(st)})}function O(S){const k=parseFloat(S.latitude),B=parseFloat(S.longitude);if(!(isNaN(k)||isNaN(B))){N(k,B,15);for(const D of c){const tt=D.getLatLng();if(Math.abs(tt.lat-k)<.001&&Math.abs(tt.lng-B)<.001){D.openPopup();break}}}}function N(S,k,B){a&&a.setView([S,k],B||12)}function V(S,k,B){A(),a&&(f=Hn.circle([S,k],{radius:B,color:"#1a73e8",fillColor:"#1a73e8",fillOpacity:.08,weight:2,dashArray:"6, 6"}).addTo(a))}function A(){f&&(a.removeLayer(f),f=null)}function j(S){f&&f.setRadius(S)}return i({addMarkers:y,clearMarkers:_,focusMarker:O,drawRadiusCircle:V,clearRadiusCircle:A,updateRadiusCircle:j,flyTo:N}),(S,k)=>(Zt(),jt("div",{ref_key:"mapContainer",ref:r,class:"map-container"},null,512))}},um=rm(lm,[["__scopeId","data-v-42493946"]]),cm={class:"app"},hm={class:"top-bar"},fm={class:"search-form"},dm={class:"input-wrap"},pm={key:0,class:"suggest-dropdown"},_m=["onMousedown","onMouseenter"],mm={class:"suggest-name"},gm={key:0,class:"suggest-city"},vm=["value"],ym=["disabled"],wm={value:""},bm=["value"],xm=["value"],Pm=["disabled"],Tm={key:0,class:"center-badge"},Sm={key:0,class:"panel-loading"},Lm={key:1,class:"panel-error"},Em={key:2,class:"panel-empty"},Om={class:"panel-header"},Cm={class:"panel-title"},Am={class:"panel-page"},Rm={class:"panel-list"},Mm=["onClick"],Im={class:"card-name"},km={class:"card-phone"},Bm={class:"card-addr"},Nm={class:"panel-footer"},zm=["disabled"],Dm=["disabled"],Fm={__name:"App",setup(e){const i=Ut(null),s=Ut(""),r=Ut(""),a=Ut(3e3),u=Ut(0),c=Ut(0),f=Ut([]),d=Ut(0),g=Ut(!1),_=Ut(!1),y=Ut(""),O=Ut(1),N=Ut(1),V=Ut(null),A=Ut([]),j=Ut(-1);let S=null;const k=Ut(""),B=["北京","天津","上海","重庆","广东","浙江","江苏","福建","山东","四川","湖北","湖南","河南","河北","安徽","江西","陕西","山西","辽宁","吉林","黑龙江","广西","内蒙古","西藏","新疆","宁夏","青海","甘肃","贵州","云南","海南"],D={北京:["北京"],天津:["天津"],上海:["上海"],重庆:["重庆"],广东:["广州","深圳","东莞","佛山","珠海","中山","惠州","汕头","江门","湛江","肇庆","茂名","揭阳","梅州","清远","韶关","阳江","河源","汕尾","潮州","云浮"],浙江:["杭州","宁波","温州","绍兴","嘉兴","金华","台州","湖州","衢州","舟山","丽水"],江苏:["南京","苏州","无锡","常州","南通","徐州","扬州","盐城","淮安","连云港","镇江","泰州","宿迁"],福建:["福州","厦门","泉州","漳州","莆田","宁德","龙岩","三明","南平"],山东:["济南","青岛","烟台","潍坊","临沂","淄博","济宁","威海","泰安","德州","聊城","东营","枣庄","日照","滨州","菏泽"],四川:["成都","绵阳","德阳","宜宾","南充","泸州","自贡","乐山","眉山","达州","内江","遂宁","广安","攀枝花","资阳","广元","雅安","巴中"],湖北:["武汉","襄阳","宜昌","荆州","黄冈","十堰","孝感","荆门","鄂州","黄石","咸宁","随州"],湖南:["长沙","株洲","湘潭","衡阳","岳阳","常德","益阳","邵阳","郴州","怀化","永州","娄底","湘西"],河南:["郑州","洛阳","南阳","许昌","周口","新乡","安阳","开封","商丘","信阳","驻马店","平顶山","焦作","濮阳","三门峡","漯河","鹤壁"],河北:["石家庄","唐山","保定","邯郸","沧州","廊坊","秦皇岛","张家口","衡水","邢台","承德"],安徽:["合肥","芜湖","安庆","阜阳","滁州","马鞍山","蚌埠","宿州","六安","宣城","铜陵","池州","淮南","淮北","黄山"],江西:["南昌","赣州","九江","宜春","吉安","上饶","抚州","萍乡","景德镇","新余","鹰潭"],陕西:["西安","咸阳","宝鸡","渭南","汉中","延安","榆林","安康","商洛","铜川"],山西:["太原","大同","长治","临汾","晋中","运城","晋城","吕梁","忻州","阳泉","朔州"],辽宁:["沈阳","大连","鞍山","抚顺","锦州","营口","盘锦","丹东","本溪","辽阳","朝阳","阜新","葫芦岛","铁岭"],吉林:["长春","吉林","延边","四平","通化","松原","白城","辽源","白山"],黑龙江:["哈尔滨","大庆","齐齐哈尔","牡丹江","佳木斯","绥化","鸡西","鹤岗","双鸭山","伊春","七台河","黑河","大兴安岭"],广西:["南宁","桂林","柳州","北海","玉林","百色","梧州","贵港","钦州","河池","防城港","崇左","来宾","贺州"],内蒙古:["呼和浩特","包头","赤峰","鄂尔多斯","通辽","呼伦贝尔","乌兰察布","巴彦淖尔","兴安","锡林郭勒","阿拉善"],西藏:["拉萨","日喀则","昌都","林芝","山南","那曲","阿里"],新疆:["乌鲁木齐","克拉玛依","吐鲁番","哈密","昌吉","伊犁","喀什","阿克苏","和田","塔城","阿勒泰","博尔塔拉","巴音郭楞","克孜勒苏"],宁夏:["银川","石嘴山","吴忠","固原","中卫"],青海:["西宁","海东","海西","海南","海北","黄南","玉树","果洛"],甘肃:["兰州","天水","白银","金昌","嘉峪关","武威","张掖","平凉","酒泉","庆阳","定西","陇南","临夏","甘南"],贵州:["贵阳","遵义","六盘水","安顺","毕节","铜仁","黔东南","黔南","黔西南"],云南:["昆明","大理","丽江","曲靖","玉溪","红河","楚雄","普洱","昭通","文山","西双版纳","保山","德宏","临沧","怒江","迪庆"],海南:["海口","三亚","儋州","三沙","琼海","文昌","万宁","陵水","五指山"]},tt=Su(()=>D[k.value]||[]),st={北京:[39.9042,116.4074],天津:[39.1252,117.1908],上海:[31.2304,121.4737],重庆:[29.4316,106.9123],广州:[23.1291,113.2644],深圳:[22.5431,114.0579],东莞:[23.0208,113.7518],佛山:[23.0219,113.1219],珠海:[22.271,113.5767],中山:[22.515,113.3926],惠州:[23.111,114.4162],汕头:[23.3545,116.6822],江门:[22.5786,113.0945],湛江:[21.2713,110.3594],肇庆:[23.0469,112.4653],茂名:[21.663,110.9252],揭阳:[23.5499,116.3727],梅州:[24.2884,116.1176],清远:[23.681,113.056],韶关:[24.8104,113.5975],阳江:[21.8583,111.9822],河源:[23.7437,114.7009],汕尾:[22.787,115.3753],潮州:[23.6564,116.63],云浮:[22.915,112.0445],杭州:[30.2741,120.1551],宁波:[29.8683,121.544],温州:[28,120.6994],绍兴:[30.03,120.58],嘉兴:[30.7711,120.7551],金华:[29.0792,119.6474],台州:[28.6562,121.4208],湖州:[30.8931,120.0875],衢州:[28.9359,118.8742],舟山:[29.9855,122.2076],丽水:[28.468,119.9228],南京:[32.0603,118.7969],苏州:[31.299,120.5853],无锡:[31.491,120.3119],常州:[31.8107,119.9737],南通:[31.9798,120.8938],徐州:[34.2044,117.2858],扬州:[32.3937,119.4126],盐城:[33.3876,120.1633],淮安:[33.5516,119.1131],连云港:[34.5969,119.2215],镇江:[32.1898,119.4251],泰州:[32.4555,119.9227],宿迁:[33.963,118.2755],福州:[26.0745,119.2965],厦门:[24.4798,118.0895],泉州:[24.8741,118.6756],漳州:[24.5134,117.647],莆田:[25.454,119.0077],宁德:[26.6657,119.5479],龙岩:[25.0751,117.017],三明:[26.2634,117.6392],南平:[26.6417,118.1779],济南:[36.6512,116.9972],青岛:[36.0671,120.3826],烟台:[37.4645,121.4479],潍坊:[36.7068,119.1618],临沂:[35.1046,118.3564],淄博:[36.8135,118.055],济宁:[35.4148,116.5872],威海:[37.5133,122.121],泰安:[36.1994,117.0875],德州:[37.4363,116.3594],聊城:[36.4568,115.9854],东营:[37.4341,118.6746],枣庄:[34.8105,117.3211],日照:[35.4204,119.5272],滨州:[37.3819,117.9724],菏泽:[35.2337,115.4812],成都:[30.5728,104.0668],绵阳:[31.4675,104.6791],德阳:[31.1268,104.398],宜宾:[28.7519,104.6417],南充:[30.7991,106.0827],泸州:[28.8717,105.443],自贡:[29.339,104.7784],乐山:[29.5527,103.7654],眉山:[30.0595,103.8265],达州:[31.2091,107.4677],内江:[29.5802,105.0584],遂宁:[30.5329,105.5929],广安:[30.456,106.6332],攀枝花:[26.5823,101.7186],资阳:[30.1286,104.6276],广元:[32.4355,105.845],雅安:[29.9765,103.0094],巴中:[31.8674,106.7477],武汉:[30.5928,114.3055],襄阳:[32.009,112.1226],宜昌:[30.692,111.2864],荆州:[30.3345,112.2407],黄冈:[30.4544,114.8724],十堰:[32.6319,110.7939],孝感:[30.9178,113.9168],荆门:[31.0354,112.1992],鄂州:[30.3908,114.895],黄石:[30.201,115.0769],咸宁:[29.8327,114.3222],随州:[31.6902,113.3826],长沙:[28.2282,112.9388],株洲:[27.8278,113.1339],湘潭:[27.8298,112.9442],衡阳:[26.8932,112.572],岳阳:[29.3572,113.1288],常德:[29.0316,111.6985],益阳:[28.5889,112.3551],邵阳:[27.2389,111.4673],郴州:[25.7705,113.0145],怀化:[27.5697,109.9985],永州:[26.4207,111.6132],娄底:[27.7,112.0004],湘西:[28.3118,109.7394],郑州:[34.747,113.6247],洛阳:[34.6202,112.4545],南阳:[32.9908,112.5286],许昌:[34.0355,113.8523],周口:[33.626,114.6473],新乡:[35.3036,113.9269],安阳:[36.0969,114.3931],开封:[34.7973,114.3073],商丘:[34.414,115.6554],信阳:[32.1471,114.0932],驻马店:[32.9815,114.022],平顶山:[33.7662,113.1924],焦作:[35.2159,113.2418],濮阳:[35.7624,115.0297],三门峡:[34.7731,111.1999],漯河:[33.5814,114.0165],鹤壁:[35.8995,114.2975],石家庄:[38.0423,114.5145],唐山:[39.6303,118.1824],保定:[38.8739,115.4646],邯郸:[36.6256,114.5391],沧州:[38.3044,116.8387],廊坊:[39.5379,116.6838],秦皇岛:[39.8891,119.5997],张家口:[40.768,114.8862],衡水:[37.7389,115.6707],邢台:[37.0736,114.5047],承德:[40.9495,117.9593],合肥:[31.8206,117.2272],芜湖:[31.3525,118.4329],安庆:[30.5429,117.0635],阜阳:[32.8901,115.8141],滁州:[32.3019,118.3071],马鞍山:[31.6714,118.5071],蚌埠:[32.9188,117.3894],宿州:[33.6476,116.9639],六安:[31.7331,116.5199],宣城:[30.9404,118.7587],铜陵:[30.8789,117.8107],池州:[30.6648,117.4916],淮南:[32.6261,116.9997],淮北:[33.9653,116.7985],黄山:[29.7153,118.337],南昌:[28.6829,115.8582],赣州:[25.831,114.9356],九江:[29.6619,115.9973],宜春:[27.8143,114.4161],吉安:[27.113,114.9934],上饶:[28.4546,117.9435],抚州:[27.9479,116.3581],萍乡:[27.6229,113.8548],景德镇:[29.2686,117.1784],新余:[27.8178,114.9171],鹰潭:[28.2588,117.0692],西安:[34.3416,108.9398],咸阳:[34.3293,108.7092],宝鸡:[34.3621,107.2373],渭南:[34.5205,109.5103],汉中:[33.0677,107.0236],延安:[36.5854,109.4888],榆林:[38.2855,109.7345],安康:[32.6849,109.0291],商洛:[33.8683,109.9202],铜川:[34.897,108.9451],太原:[37.8706,112.5499],大同:[40.0769,113.3001],长治:[36.1954,113.1164],临汾:[36.088,111.5193],晋中:[37.6875,112.7528],运城:[35.0265,111.007],晋城:[35.4905,112.8513],吕梁:[37.5193,111.1446],忻州:[38.417,112.734],阳泉:[37.8568,113.5803],朔州:[39.3315,112.4327],沈阳:[41.8057,123.4315],大连:[38.914,121.6148],鞍山:[41.1078,122.9945],抚顺:[41.8796,123.9572],锦州:[41.0952,121.127],营口:[40.6241,122.2351],盘锦:[41.1198,122.0708],丹东:[40.0024,124.3567],本溪:[41.487,123.7716],辽阳:[41.2691,123.2378],朝阳:[41.5737,120.4508],阜新:[42.021,121.6703],葫芦岛:[40.7109,120.8372],铁岭:[42.286,123.8426],长春:[43.896,125.3265],吉林:[43.8379,126.5493],延边:[42.8907,129.5094],四平:[43.1639,124.3504],通化:[41.7278,125.9395],松原:[45.141,124.8255],白城:[45.6193,122.8389],辽源:[42.8877,125.1437],白山:[41.9406,126.4244],哈尔滨:[45.8038,126.535],大庆:[46.5967,125.1041],齐齐哈尔:[47.3543,123.918],牡丹江:[44.5528,129.6186],佳木斯:[46.7998,130.3194],绥化:[46.6368,126.9692],鸡西:[45.2953,130.9661],鹤岗:[47.3499,130.2978],双鸭山:[46.6467,131.1585],伊春:[47.7277,128.8404],七台河:[45.7708,131.0153],黑河:[50.2454,127.5284],大兴安岭:[50.5506,126.205],南宁:[22.817,108.3665],桂林:[25.2344,110.1798],柳州:[24.3249,109.428],北海:[21.4679,109.1197],玉林:[22.6529,110.1411],百色:[23.902,106.6184],梧州:[23.4769,111.2786],贵港:[23.1131,109.598],钦州:[21.9799,108.6541],河池:[24.6929,108.0854],防城港:[21.6869,108.3783],崇左:[22.3795,107.3652],来宾:[23.7332,109.2213],贺州:[24.4035,111.5667],呼和浩特:[40.8422,111.7498],包头:[40.6571,109.8402],赤峰:[42.2576,118.8888],鄂尔多斯:[39.6083,109.7809],通辽:[43.653,122.2445],呼伦贝尔:[49.2,119.76],乌兰察布:[40.9935,113.131],巴彦淖尔:[40.7274,107.3862],兴安:[46.082,122.038],锡林郭勒:[43.9335,116.048],阿拉善:[38.8483,105.6878],拉萨:[29.65,91.1],日喀则:[29.267,88.881],昌都:[31.14,97.17],林芝:[29.65,94.36],山南:[29.23,91.77],那曲:[31.47,92.06],阿里:[30.4,81.14],乌鲁木齐:[43.8256,87.6168],克拉玛依:[45.575,84.882],吐鲁番:[42.94,89.19],哈密:[42.82,93.51],昌吉:[44.013,87.305],伊犁:[43.92,81.32],喀什:[39.47,75.99],阿克苏:[41.17,80.26],和田:[37.11,79.92],塔城:[46.75,82.98],阿勒泰:[47.87,88.14],博尔塔拉:[44.9,82.07],巴音郭楞:[41.77,86.15],克孜勒苏:[39.71,76.17],银川:[38.471,106.259],石嘴山:[38.986,106.385],吴忠:[37.999,106.201],固原:[36.017,106.286],中卫:[37.517,105.196],西宁:[36.623,101.78],海东:[36.502,102.104],海西:[37.373,97.371],海南:[36.28,100.62],海北:[36.96,100.9],黄南:[35.52,102.02],玉树:[33,97.01],果洛:[34.48,100.24],兰州:[36.0611,103.8343],天水:[34.5811,105.725],白银:[36.5447,104.1382],金昌:[38.521,102.188],嘉峪关:[39.773,98.29],武威:[37.9277,102.6379],张掖:[38.9349,100.4599],平凉:[35.5434,106.6682],酒泉:[39.7368,98.494],庆阳:[35.71,107.644],定西:[35.58,104.625],陇南:[33.37,104.92],临夏:[35.6,103.21],甘南:[34.99,102.91],贵阳:[26.647,106.6302],遵义:[27.7254,106.927],六盘水:[26.5927,104.83],安顺:[26.2537,105.9462],毕节:[27.302,105.29],铜仁:[27.73,109.18],黔东南:[26.58,107.97],黔南:[26.26,107.52],黔西南:[25.09,104.9],昆明:[25.0389,102.7183],大理:[25.6065,100.228],丽江:[26.872,100.23],曲靖:[25.49,103.8],玉溪:[24.352,102.547],红河:[23.37,103.38],楚雄:[25.04,101.54],普洱:[22.83,100.97],昭通:[27.34,103.72],文山:[23.38,104.24],西双版纳:[22.01,100.8],保山:[25.12,99.17],德宏:[24.44,98.59],临沧:[23.89,100.09],怒江:[25.85,98.86],迪庆:[27.82,99.71],海口:[20.044,110.35],三亚:[18.254,109.502],儋州:[19.521,109.581],三沙:[16.83,112.34],琼海:[19.259,110.466],文昌:[19.544,110.798],万宁:[18.797,110.389],陵水:[18.506,110.037],五指山:[18.775,109.517]},At=[{value:1e3,label:"1km"},{value:3e3,label:"3km"},{value:5e3,label:"5km"},{value:1e4,label:"10km"},{value:2e4,label:"20km"},{value:5e4,label:"50km"}];xi(r,(U,z)=>{if(!U||U===z||!i.value)return;const W=st[U];W&&(u.value=0,c.value=0,i.value.clearRadiusCircle(),i.value.flyTo(W[0],W[1]))}),xi(a,U=>{c.value&&u.value&&i.value&&i.value.updateRadiusCircle(U)});async function Wt(U){if(!U.trim()){A.value=[];return}try{const z=await em(U,r.value);A.value=(z.tips||[]).slice(0,8),j.value=-1}catch{A.value=[]}}function ne(){clearTimeout(S),S=setTimeout(()=>Wt(s.value),200)}function Rt(){A.value=[],j.value=-1}function vt(){setTimeout(Rt,150)}function Ct(U){const z=A.value.length;z!==0&&(j.value=(j.value+U+z)%z)}function xe(U){if(s.value=U.name,Rt(),U.longitude&&U.latitude){const z=parseFloat(U.latitude),W=parseFloat(U.longitude);!isNaN(z)&&!isNaN(W)&&(u.value=z,c.value=W)}wt()}async function wt(){var W,mt;y.value="";const U=s.value.trim(),z=c.value&&u.value;if(!U&&!z){y.value="请输入关键词或点击地图选择搜索范围",_.value=!0;return}if(i.value){if(z)i.value.flyTo(u.value,c.value,14),i.value.drawRadiusCircle(u.value,c.value,a.value);else if(r.value&&st[r.value]){const rt=st[r.value];i.value.flyTo(rt[0],rt[1],12)}}g.value=!0,_.value=!0,V.value=null;try{const rt=await tm(U,r.value,O.value,c.value,u.value,a.value);f.value=rt.list||[],d.value=rt.total||0,N.value=rt.maxPage||1,O.value=rt.page||1,i.value&&f.value.length>0&&i.value.addMarkers(f.value)}catch(rt){y.value=((mt=(W=rt.response)==null?void 0:W.data)==null?void 0:mt.message)||rt.message||"请求失败",f.value=[],d.value=0,N.value=1}finally{g.value=!1}}function Pe(U){V.value=U,i.value&&i.value.focusMarker(U)}function ct(U){V.value=U}function ft({lat:U,lng:z}){u.value=U,c.value=z,k.value="",r.value="",i.value&&i.value.drawRadiusCircle(U,z,a.value)}function $(){u.value=0,c.value=0,i.value&&i.value.clearRadiusCircle()}function ie(){r.value=""}return(U,z)=>(Zt(),jt("div",cm,[He(um,{ref_key:"mapRef",ref:i,onMarkerClick:ct,onMapClick:ft},null,512),_t("div",hm,[_t("div",fm,[_t("div",dm,[ls(_t("input",{"onUpdate:modelValue":z[0]||(z[0]=W=>s.value=W),class:"input",placeholder:"关键词(选填,如:火锅店)",onInput:ne,onCompositionend:ne,onKeydown:[z[1]||(z[1]=cs(W=>{wt(),Rt()},["enter"])),z[2]||(z[2]=cs(Ro(W=>Ct(1),["prevent"]),["down"])),z[3]||(z[3]=cs(Ro(W=>Ct(-1),["prevent"]),["up"])),cs(Rt,["esc"])],onBlur:vt,autocomplete:"off"},null,544),[[Bd,s.value]])]),A.value.length>0?(Zt(),jt("ul",pm,[(Zt(!0),jt(ae,null,di(A.value,(W,mt)=>(Zt(),jt("li",{key:W.poiId||mt,class:Vn(["suggest-item",{active:mt===j.value}]),onMousedown:Ro(rt=>xe(W),["prevent"]),onMouseenter:rt=>j.value=mt},[_t("span",mm,$t(W.name),1),W.city?(Zt(),jt("span",gm,$t(W.city),1)):us("",!0)],42,_m))),128))])):us("",!0),ls(_t("select",{"onUpdate:modelValue":z[4]||(z[4]=W=>k.value=W),class:"select province-select",onChange:ie},[z[9]||(z[9]=_t("option",{value:""},"所有省份",-1)),(Zt(),jt(ae,null,di(B,W=>_t("option",{key:W,value:W},$t(W),9,vm)),64))],544),[[Ao,k.value]]),ls(_t("select",{"onUpdate:modelValue":z[5]||(z[5]=W=>r.value=W),class:"select city-select",disabled:!k.value},[_t("option",wm,$t(k.value?"所有城市":"请先选省份"),1),(Zt(!0),jt(ae,null,di(tt.value,W=>(Zt(),jt("option",{key:W,value:W},$t(W),9,bm))),128))],8,ym),[[Ao,r.value]]),ls(_t("select",{"onUpdate:modelValue":z[6]||(z[6]=W=>a.value=W),class:"select radius-select"},[(Zt(),jt(ae,null,di(At,W=>_t("option",{key:W.value,value:W.value},$t(W.label),9,xm)),64))],512),[[Ao,a.value]]),_t("button",{class:"btn",disabled:g.value,onClick:wt},$t(g.value?"搜索中...":"搜索"),9,Pm)]),u.value||c.value?(Zt(),jt("div",Tm,[_t("span",null,"中心点:"+$t(c.value.toFixed(4))+", "+$t(u.value.toFixed(4)),1),_t("button",{class:"clear-center",onClick:$},"×")])):us("",!0)]),_.value?(Zt(),jt("div",{key:0,class:Vn(["side-panel",{"has-results":f.value.length>0}])},[g.value?(Zt(),jt("div",Sm,[...z[10]||(z[10]=[_t("div",{class:"spinner"},null,-1),_t("span",null,"正在查询...",-1)])])):y.value?(Zt(),jt("div",Lm,$t(y.value),1)):f.value.length===0?(Zt(),jt("div",Em,[...z[11]||(z[11]=[xu(" 未找到相关商户",-1),_t("br",null,null,-1),_t("small",null,"请尝试其他关键词",-1)])])):(Zt(),jt(ae,{key:3},[_t("div",Om,[_t("span",Cm,"共 "+$t(d.value)+" 条结果",1),_t("span",Am,"第 "+$t(O.value)+"/"+$t(N.value)+" 页",1)]),_t("div",Rm,[(Zt(!0),jt(ae,null,di(f.value,W=>(Zt(),jt("div",{key:W.poiId,class:Vn(["result-card",{active:V.value&&V.value.poiId===W.poiId}]),onClick:mt=>Pe(W)},[_t("div",Im,$t(W.name),1),_t("div",km,$t(W.phone||"暂无电话"),1),_t("div",Bm,$t(W.address),1)],10,Mm))),128))]),_t("div",Nm,[_t("button",{class:"page-btn",disabled:O.value<=1,onClick:z[7]||(z[7]=W=>{O.value--,wt()})},"上一页",8,zm),_t("button",{class:"page-btn",disabled:O.value>=N.value,onClick:z[8]||(z[8]=W=>{O.value++,wt()})},"下一页",8,Dm)])],64))],2)):us("",!0),z[12]||(z[12]=_t("div",{class:"hint-bar"},[_t("span",null,"点击地图设置搜索中心点")],-1))]))}};Hd(Fm).mount("#app"); diff --git a/web/dist/index.html b/web/dist/index.html index d377138..510d032 100644 --- a/web/dist/index.html +++ b/web/dist/index.html @@ -4,8 +4,8 @@ Pointly-Tel - 高德POI商户查询 - - + +
diff --git a/web/src/App.vue b/web/src/App.vue index 48afb0b..1a29002 100644 --- a/web/src/App.vue +++ b/web/src/App.vue @@ -369,6 +369,7 @@ async function doSearch() { if (mapRef.value) { if (hasCoord) { mapRef.value.flyTo(centerLat.value, centerLng.value, 14) + mapRef.value.drawRadiusCircle(centerLat.value, centerLng.value, radius.value) } else if (city.value && cityCoords[city.value]) { const coord = cityCoords[city.value] mapRef.value.flyTo(coord[0], coord[1], 12) diff --git a/web/src/components/PoiMap.vue b/web/src/components/PoiMap.vue index 9d5e0aa..30cb0f5 100644 --- a/web/src/components/PoiMap.vue +++ b/web/src/components/PoiMap.vue @@ -97,6 +97,10 @@ function focusMarker(poi) { const lng = parseFloat(poi.longitude) if (isNaN(lat) || isNaN(lng)) return + // 先飞到该位置 + flyTo(lat, lng, 15) + + // 找到对应标记并弹窗 for (const marker of currentMarkers) { const pos = marker.getLatLng() if (Math.abs(pos.lat - lat) < 0.001 && Math.abs(pos.lng - lng) < 0.001) {