Help
RSS
API
Feed
Maltego
Contact
Domain > bus.87ds49mmfv.workers.dev
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-10-14
104.21.93.187
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Tue, 14 Oct 2025 10:02:27 GMTContent-Type: text/html;charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveCF-RAY: 98e63dc2cc5a70b9-PDXReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sqgY%2FGIaIXyCn4zCEnigdgEvEd4azHJmCffbXXJnQ74FIpBW2ze3zJUS6VAyNiNfpK5v0mMH4EgnVqYu5OEadGrLv3b1rzO7GpdIzsUIsosy5s%2FLE1YQuOclgOV7WJfQ8D7rxdvRYpknrWMq0HA%3D%3D},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflarealt-svc: h3:443; ma86400server-timing: cfL4;desc?protoTCP&rtt5718&min_rtt5718&rtt_var2859&sent1&recv3&lost0&retrans0&sent_bytes0&recv_bytes65&delivery_rate0&cwnd249&unsent_bytes0&cid0000000000000000&ts0&x0 !DOCTYPE html> html langen> head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>诸暨公交查询系统/title> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css> link hrefhttps://fonts.googleapis.com/css2?familyRoboto:wght@400;500;700&displayswap relstylesheet> style> body { font-family: Roboto, sans-serif; background-color: #f5f7fa; background-image: url(data:image/svg+xml;utf8,svg xmlnshttp://www.w3.org/2000/svg width200 height200 viewBox0 0 200 200>g fillnone stroke%233498db stroke-width1.5 stroke-opacity0.2>path dM30 60 h100 a10 10 0 0 1 10 10 v30 a10 10 0 0 1 -10 10 h-100 a10 10 0 0 1 -10 -10 v-30 a10 10 0 0 1 10 -10 z/>circle cx50 cy100 r15/>circle cx110 cy100 r15/>path dM40 70 h20 v10 h-20 z M70 70 h40 v10 h-40 z/>/g>/svg>); background-repeat: repeat; background-size: 200px 200px; color: #333; margin: 0; padding: 20px; position: relative; overflow-x: hidden; } h1 { color: #2c3e50; margin-bottom: 10px; z-index: 2; position: relative; } h2 { font-size: 16px; color: #7f8c8d; margin-bottom: 20px; font-weight: 400; } h3 { color: #3498db; margin-top: 30px; border-bottom: 2px solid #3498db; padding-bottom: 10px; } .container { max-width: 800px; margin: 0 auto; background: #fff; padding: 25px; border-radius: 10px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); position: relative; z-index: 2; } .form-group { margin-bottom: 15px; } label { display: block; margin-bottom: 5px; font-weight: 500; color: #2c3e50; } select, input { padding: 12px; width: 100%; box-sizing: border-box; border: 1px solid #ddd; border-radius: 6px; font-size: 16px; } select:focus, input:focus { border-color: #3498db; outline: none; box-shadow: 0 0 5px rgba(52, 152, 219, 0.3); } button { padding: 12px 20px; background-color: #3498db; color: white; border: none; cursor: pointer; border-radius: 6px; font-size: 16px; } button:hover { background-color: #2980b9; transform: translateY(-2px); } .form-buttons { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; } .form-buttons buttontypesubmit { width: 100%; } #randomQueryBtn { padding: 12px 15px; } #result, #addResult { margin-top: 20px; } #result h3 { margin-top: 0; color: #3498db; } #result h4, #result h5, #result h6 { color: #2c3e50; } .result-container { margin-top: 10px; } .result-summary { background-color: #e8f4fc; padding: 10px; border-radius: 6px; margin-bottom: 15px; } .result-section-title { font-size: 20px; margin-bottom: 15px; color: #3498db; border-bottom: 1px solid #ddd; padding-bottom: 5px; } .archived-title { color: #7f8c8d; } .detailed-model, .detailed-plate { background-color: transparent; border: none; padding: 0; margin-bottom: 0; box-shadow: none; } .model-title { margin-top: 0; font-size: 18px; color: #2c3e50; margin-bottom: 10px; } .model-alias { font-size: 0.9em; color: #7f8c8d; } .model-group-title { font-size: 18px; color: #2c3e50; margin-top: 25px; margin-bottom: 15px; padding-bottom: 8px; border-bottom: 1px solid #ddd; } .archived-model-title { color: #7f8c8d; border-bottom-color: #e0e0e0; } .sub-title { font-size: 16px; margin-bottom: 10px; color: #3498db; } .model-details { margin-bottom: 15px; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 10px; } .model-details-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px 20px; margin-bottom: 15px; } .model-details-grid p { margin: 5px 0; font-size: 14px; display: flex; align-items: center; } .model-details-grid .fa-fw { margin-right: 8px; color: #3498db; } .notes-field { grid-column: 1 / -1; } .model-details p { margin: 5px 0; font-size: 14px; } .plate-list-new { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 15px; margin-top: 10px; } .plate-card-new { background-color: #f5f7fa; border-radius: 8px; padding: 10px 5px; border: 1px solid #e0e0e0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 4px; } .archived-plate { background-color: #f0f0f0; border-color: #ccc; } .plate-info-centered { font-size: 16px; font-weight: 500; width: 100%; cursor: pointer; transition: transform 0.2s; } .plate-info-centered:hover { transform: scale(1.05); } .plate-icons { font-size: 16px; min-height: 20px; display: flex; align-items: center; justify-content: center; gap: 10px; } .info-icon { cursor: pointer; color: #f39c12; } .image-icon { cursor: pointer; color: #1abc9c; } .plate-special-paint { display: flex; align-items: center; justify-content: center; min-height: 22px; } .plate-record-time { font-size: 12px; color: #7f8c8d; width: 100%; } .route-info { margin-top: 5px; } .route-item { font-size: 14px; margin: 5px 0; color: #34495e; } .archived-route { color: #7f8c8d; font-style: italic; } .no-route { color: #7f8c8d; font-style: italic; margin: 5px 0; } .archived-category { background-color: #f9f9f9; padding: 10px; border-radius: 6px; border: 1px solid #e0e0e0; } .route-category { margin-bottom: 10px; } .detailed-route .route-card-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; } .route-card { background-color: #e8f4fc; border: 1px solid #b8dcf5; border-radius: 6px; padding: 8px; } .archived-route-card { background-color: #f0f0f0; border-color: #ccc; color: #7f8c8d; } .route-card-title { margin: 0 0 5px 0; font-size: 14px; font-weight: 500; color: #2c3e50; } .archived-route .route-sign { font-style: normal; } .archived-route-card .route-card-title { color: #7f8c8d; } .route-card-time { margin: 0; font-size: 12px; color: #7f8c8d; } .route-header-card { background-color: #e8f4fc; border: 1px solid #b8dcf5; border-radius: 8px; padding: 15px; margin-bottom: 10px; display: flex; justify-content: center; align-items: center; } .route-header-title { margin: 0; font-size: 22px; color: #2c3e50; } .accessible-info-card, .special-paint-info-card { border-radius: 6px; padding: 10px; margin-bottom: 10px; } .accessible-info-card { background-color: #e6f3e6; border: 1px solid #b8d8b8; } .accessible-info-text, .special-paint-info-text { margin: 0; font-size: 16px; } .accessible-info-text { color: #2c6c2c; } .special-paint-info-card { background-color: #ffebcc; border: 1px solid #ffcc80; } .special-paint-info-text { color: #d35400; } .result-divider { border-bottom: 2px dashed #ddd; margin: 20px 0; } .no-data { color: #7f8c8d; font-style: italic; margin-bottom: 15px; } .suggestions-list { list-style: none; margin: 0; padding: 0; border: 1px solid #ddd; max-height: 200px; overflow-y: auto; display: none; background: white; border-radius: 6px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); position: absolute; width: 100%; z-index: 1000; } .suggestions-list li { padding: 12px; cursor: pointer; } .suggestions-list li:hover { background-color: #f0f0f0; } .admin-btn { margin-top: 20px; background-color: #7f8c8d; } .admin-btn:hover { background-color: #95a5a6; } .plate-number { display: inline-block; background-color: #FFD700; color: black; padding: 3px 8px; border-radius: 4px; border: 1px solid #333; font-family: monospace; font-size: 16px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); margin-right: 5px; } .electric-plate { background: linear-gradient(to right, #FFD700, #2ecc71); } .special-paint-box { display: inline-flex; align-items: center; border: 1px solid orange; border-radius: 5px; background-color: #fff; color: orange; font-size: 14px; padding: 2px 5px; animation: glow 1.5s infinite alternate; } @keyframes glow { from { text-shadow: 0 0 5px orange, 0 0 10px orange; } to { text-shadow: 0 0 15px orange, 0 0 20px orange; } } .special-paint-box-small { display: inline-flex; align-items: center; border: 1px solid orange; border-radius: 5px; background-color: #fff; color: orange; font-size: 11px; padding: 2px 4px; } .route-sign { display: inline-block; padding: 5px 10px; background-color: #fff; border: 2px solid #000; border-radius: 5px; font-weight: bold; font-size: 16px; color: #000; margin: 0 5px; text-align: center; } .info-modal { display: none; position: fixed; z-index: 1001; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.6); align-items: center; justify-content: center; } .info-modal-content { background-color: #fefefe; margin: auto; padding: 20px; border: 1px solid #888; width: 80%; max-width: 500px; border-radius: 8px; position: relative; } .info-modal-content .route-item { font-size: 16px; } .image-modal { display: none; position: fixed; z-index: 1002; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.8); display: flex; align-items: center; justify-content: center; } .image-modal-content { background-color: #fff; padding: 20px; border-radius: 8px; width: 90%; max-width: 700px; position: relative; animation: fadeIn 0.3s; } /* NEW Styles for image gallery in modal */ .image-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin-top: 15px; max-height: 70vh; overflow-y: auto; } .image-gallery img { width: 100%; height: auto; border-radius: 8px; border: 1px solid #ddd; } .close-button { color: #aaa; float: right; font-size: 28px; font-weight: bold; position: absolute; top: 10px; right: 15px; } .close-button:hover, .close-button:focus { color: black; text-decoration: none; cursor: pointer; } .animate-fade-in { animation: fadeIn 0.5s ease-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .vehicle-stats { margin-bottom: 20px; padding: 10px; background-color: #f0f8ff; border-radius: 6px; display: flex; gap: 20px; align-items: center; flex-wrap: wrap; } .status-dot { height: 10px; width: 10px; border-radius: 50%; display: inline-block; margin-right: 8px; } .active-dot { background-color: #2ecc71; } .offline-dot { background-color: #95a5a6; } .accessible-routes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); gap: 10px; margin-top: 15px; } .route-sign-link { display: inline-block; padding: 8px 12px; background-color: #fff; border: 2px solid #000; border-radius: 5px; font-weight: bold; font-size: 18px; color: #000; text-align: center; cursor: pointer; transition: background-color 0.2s, color 0.2s, border-color 0.2s; } .route-sign-link:hover { background-color: #3498db; color: #fff; border-color: #3498db; } .clickable-link { cursor: pointer; text-decoration: underline; color: #3498db; } .clickable-link:hover { color: #2980b9; } @media (max-width: 600px) { body { padding: 10px; } .container { padding: 15px; } h1 { font-size: 24px; } .model-details { grid-template-columns: 1fr; } } /* 黑暗模式适配 */ @media (prefers-color-scheme: dark) { body { background-color: #1f1f1f; background-image: url(data:image/svg+xml;utf8,svg xmlnshttp://www.w3.org/2000/svg width200 height200 viewBox0 0 200 200>g fillnone stroke%234dabf7 stroke-width1.5 stroke-opacity0.2>path dM30 60 h100 a10 10 0 0 1 10 10 v30 a10 10 0 0 1 -10 10 h-100 a10 10 0 0 1 -10 -10 v-30 a10 10 0 0 1 10 -10 z/>circle cx50 cy100 r15/>circle cx110 cy100 r15/>path dM40 70 h20 v10 h-20 z M70 70 h40 v10 h-40 z/>/g>/svg>); color: #e0e0e0; } .container { background: #2c2c2c; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } h1, label, #result h4, #result h5, #result h6, .model-title, .route-card-title { color: #f0f0f0; } h2, .archived-title, .archived-route, .no-route, .no-data, .route-card-time, .archived-route-card, .archived-route-card .route-card-title, .archived-model-title, .model-alias { color: #b0b0b0; } h3, #result h3, .sub-title, .result-section-title { color: #4dabf7; } .result-section-title { border-bottom-color: #555; } .model-group-title { color: #f0f0f0; border-bottom-color: #555; } select, input { background-color: #3a3a3a; color: #e0e0e0; border-color: #555; } select:focus, input:focus { border-color: #4dabf7; box-shadow: 0 0 5px rgba(77, 171, 247, 0.5); } button { background-color: #4dabf7; } button:hover { background-color: #339af0; } #result, #addResult { background-color: transparent; } .result-summary { background-color: #1e3a8a; } .detailed-model, .detailed-plate { background-color: transparent; border: none; padding: 0; margin-bottom: 0; box-shadow: none; } .plate-card-new { background-color: #3a3a3a; border-color: #555; } .archived-plate { background-color: #454545; border-color: #666; } .route-item { color: #e0e0e0; } .archived-category { background-color: #3a3a3a; border-color: #555; } .route-card { background-color: #1e3a8a; border-color: #335f9e; } .archived-route-card { background-color: #454545; border-color: #666; color: #b0b0b0; } .route-header-card { background-color: #1e3a8a; border-color: #335f9e; } .accessible-info-card { background-color: #2d4a2d; border-color: #4a6f4a; } .accessible-info-text { color: #a3e4a3; } .special-paint-info-card { background-color: #4a331a; border-color: #8c6e4a; } .special-paint-info-text { color: #ffb74d; } .result-divider { border-bottom-color: #555; } .suggestions-list { background: #3a3a3a; border-color: #555; } .suggestions-list li:hover { background-color: #454545; } .admin-btn { background-color: #868e96; } .admin-btn:hover { background-color: #adb5bd; } .plate-number { color: #000; border-color: #666; } .route-sign { background-color: #444; border-color: #ccc; color: #ccc; } .route-sign-link { background-color: #444; border-color: #ccc; color: #ccc; } .route-sign-link:hover { background-color: #4dabf7; color: #1f1f1f; border-color: #4dabf7; } .special-paint-box, .special-paint-box-small { border-color: #FFA500; background-color: #333; color: #FFA500; } .info-modal-content { background-color: #3a3a3a; color: #e0e0e0; } .image-modal-content { background-color: #3a3a3a; color: #e0e0e0; } .image-gallery img { border-color: #555; } .close-button { color: #ccc; } .close-button:hover { color: #fff; } .vehicle-stats { background-color: #2c3e50; } } /style> /head> body> div classcontainer> h1>i classfas fa-bus>/i> 诸暨公交查询系统/h1> h2>i classfas fa-info-circle>/i> 本系统可查询诸暨城市、城乡、城际公交车辆和运行数据,数据具有时效性,欢迎在下方添加车辆的运行记录/h2> div classvehicle-stats> span>span classstatus-dot active-dot>/span>活跃车辆: 354/span> span>span classstatus-dot offline-dot>/span>下线车辆: 41/span> span>i classfas fa-wheelchair stylecolor: #87cefa;>/i> 无障碍车辆: 90/span> /div> h3>i classfas fa-search>/i> 查询/h3> h2>i classfas fa-exclamation-triangle>/i> 车型、车牌和线路只可选择一项查询/h2> form idqueryForm> div classform-group> label formodel>i classfas fa-bus>/i> 车型:/label> select idmodel namemodel> option value>-- 选择车型 --/option> option valueLCK6108EVG12>LCK6108EVG12 | 中通10米纯电/option>option valueLCK6669EVGE>LCK6669EVGE | 中通6米纯电/option>option valueLCK6809EVG3A7>LCK6809EVG3A7 | 中通8米纯电/option>option valueLCK6850EVG3A11>LCK6850EVG3A11 | 中通8.5米纯电/option>option valueNJL6859EV14>NJL6859EV14 | 开沃纯电/option>option valueXMQ6115FGBEVL1>XMQ6115FGBEVL1 | 金龙11米纯电/option>option valueXMQ6115FGBEVL1(长荣城际)>XMQ6115FGBEVL1(长荣城际) | 金龙11米纯电/option>option valueXMQ6850AGBEVL17>XMQ6850AGBEVL17 | 金龙8.5米纯电(第二批)/option>option valueXMQ6850AGBEVL22>XMQ6850AGBEVL22 | 金龙8.5米纯电(第三批)/option>option valueXMQ6850AGBEVL7>XMQ6850AGBEVL7 | 金龙8.5米纯电(初代)/option>option valueXMQ6900FGBEVL(2021)>XMQ6900FGBEVL(2021) | 金龙9米纯电/option>option valueXMQ6900FGBEVL(2023)>XMQ6900FGBEVL(2023) | 金龙9米纯电(第二批)/option>option valueZK6105CHEVNPG35C>ZK6105CHEVNPG35C | H10/option>option valueZK6106BEVG19E>ZK6106BEVG19E | E10i/option>option valueZK6106BEVG5L>ZK6106BEVG5L | U10/option>option valueZK6125BEVG59F>ZK6125BEVG59F | E12/option>option valueZK6650BEVG21>ZK6650BEVG21 | E6/option>option valueZK6775HNG2>ZK6775HNG2 | 宇通7米天然气/option>option valueZK6815BEVG19(绿白)>ZK6815BEVG19(绿白) | E8/option>option valueZK6815BEVG19(蓝白)>ZK6815BEVG19(蓝白) | E8/option>option valueZK6850BEVG57A>ZK6850BEVG57A | 长荣E8/option>option valueZK6856BEVG14E>ZK6856BEVG14E | E8MAX/option>option valueZK6856BEVG22L>ZK6856BEVG22L | 城乡E8MAX/option> /select> /div> div classform-group styleposition: relative;> label forplate>i classfas fa-id-card>/i> 车牌号:/label> input typetext idplate nameplate autocompleteoff placeholder输入车牌号(可模糊输入)> ul idplateSuggestions classsuggestions-list>/ul> /div> div classform-group> label forroute>i classfas fa-sign>/i> 线路:/label> select idroute nameroute> option value>-- 选择线路 --/option> option value1>1/option> option valueY1>Y1/option> option value快1>快1/option> option value2>2/option> option valueY2>Y2/option> option value6>6/option> option value7>7/option> option value8>8/option> option value9>9/option> option value10>10/option> option value11>11/option> option value12>12/option> option value13>13/option> option value15>15/option> option value16>16/option> option value17>17/option> option value18>18/option> option value19>19/option> option value20>20/option> option value21>21/option> option value22>22/option> option value23>23/option> option value25>25/option> option value26>26/option> option value27>27/option> option value28>28/option> option value29>29/option> option value30>30/option> option value31>31/option> option value32>32/option> option value35>35/option> option value36>36/option> option value37>37/option> option value38>38/option> option value39>39/option> option value50>50/option> option value51>51/option> option value52>52/option> option value53>53/option> option value113>113/option> option value133>133/option> option value151>151/option> option value8001>8001/option> option value8002>8002/option> option value8003>8003/option> option value8005>8005/option> option value8006>8006/option> option value8007>8007/option> option value8009>8009/option> option value专线>专线/option> option value凰桐河上专线>凰桐河上专线/option> option value青春巴士夜间专线>青春巴士夜间专线/option> /select> /div> div classform-buttons> button typesubmit>i classfas fa-search>/i> 查询/button> button typebutton idrandomQueryBtn title随机查询一辆车>i classfas fa-dice>/i>/button> /div> /form> div idresult>/div> h3>i classfas fa-wheelchair>/i> 无障碍线路/h3> div classaccessible-routes-grid> div classroute-sign-link onclickperformQuery(routeY1)>Y1/div>div classroute-sign-link onclickperformQuery(routeY2)>Y2/div>div classroute-sign-link onclickperformQuery(route17)>17/div>div classroute-sign-link onclickperformQuery(route22)>22/div>div classroute-sign-link onclickperformQuery(route26)>26/div>div classroute-sign-link onclickperformQuery(route28)>28/div>div classroute-sign-link onclickperformQuery(route31)>31/div>div classroute-sign-link onclickperformQuery(route38)>38/div>div classroute-sign-link onclickperformQuery(route50)>50/div>div classroute-sign-link onclickperformQuery(route113)>113/div>div classroute-sign-link onclickperformQuery(route133)>133/div>div classroute-sign-link onclickperformQuery(route151)>151/div>div classroute-sign-link onclickperformQuery(route%E4%B8%93%E7%BA%BF)>专线/div> /div> h3>i classfas fa-plus-circle>/i> 添加车辆运行记录/h3> form idaddForm> div classform-group styleposition: relative;> label foraddPlate>i classfas fa-id-card>/i> 车牌:/label> input typetext idaddPlate nameaddPlate autocompleteoff placeholder输入车牌号> ul idaddPlateSuggestions classsuggestions-list>/ul> /div> div classform-group> label foraddRoute>i classfas fa-sign>/i> 线路:/label> input typetext idaddRoute nameaddRoute required placeholder输入线路(若有字母,请使用大写字母,如Y1)> /div> button typesubmit>i classfas fa-plus>/i> 增加新记录/button> /form> div idaddResult>/div> button classadmin-btn onclickwindow.location.href/admin>i classfas fa-user-shield>/i> 访问管理员页面/button> /div> script> const allPlates 浙D01378D,浙D01558D,浙DJ5023,浙DJ5302,浙DJ5312,浙DJ5372,浙DJ5392,浙DJ5702,浙DJ5712,浙DJ5713,浙DJ5720,浙DJ5721,浙DJ5731,浙DJ5732,浙DJ5752,浙DJ5791,浙DJ5831,浙DJ5862,浙DJ5893,浙DJ5901,浙DJ5902,浙DJ5903,浙DJ5912,浙DJ5913,浙DJ5915,浙DJ5920,浙DJ5921,浙DJ5931,浙DJ5932,浙DJ5935,浙DJ5951,浙DJ5952,浙DJ5953,浙DJ5960,浙DJ5962,浙DJ5963,浙DJ5970,浙DJ5971,浙DJ5972,浙DJ5973,浙DJ5980,浙DJ5981,浙DJ5982,浙DJ5983,浙DJ5987,浙DJ5990,浙DJ5991,浙DJ5992,浙DJ5993,浙DJ5995,浙DJ5996,浙DJ5997,浙DJ5998,浙DN1518,浙DN1568,浙DN1588,浙D07998D,浙D08788D,浙D08830D,浙D08857D,浙D08860D,浙D08869D,浙D08877D,浙D08878D,浙D08882D,浙D08890D,浙D08896D,浙D08899D,浙D08378D,浙D08806D,浙D08808D,浙D08838D,浙D08858D,浙D08866D,浙D08868D,浙D08879D,浙D08880D,浙D08887D,浙D08888D,浙D08889D,浙DB7683,浙DB7962,浙DB9692,浙DB9783,浙DB9792,浙DF9779,浙D02288D,浙D08388D,浙D08809D,浙D08855D,浙D08886D,浙D08088D,浙D08158D,浙D08228D,浙D08381D,浙D08383D,浙D08397D,浙D08398D,浙D08708D,浙D08717D,浙D08785D,浙D08827D,浙D08311D,浙D08313D,浙D08318D,浙D08328D,浙D08355D,浙D08375D,浙D08380D,浙D08395D,浙D08738D,浙D08325D,浙D08330D,浙D08335D,浙D08339D,浙D08362D,浙D08377D,浙D02002D,浙D02218D,浙D02298D,浙D02608D,浙D02657D,浙D02667D,浙D02882D,浙D03388D,浙D03588D,浙D03589D,浙D05898D,浙D06198D,浙D06388D,浙D06665D,浙D07298D,浙D07798D,浙D07877D,浙D07909D,浙D07928D,浙D07955D,浙D07979D,浙D07981D,浙D07996D,浙D08000D,浙D08258D,浙D08368D,浙D08382D,浙D08399D,浙D08528D,浙D08709D,浙D08727D,浙D08730D,浙D08759D,浙D08765D,浙D08779D,浙D08851D,浙D09007D,浙D09088D,浙D09918D,浙D09923D,浙D00078D,浙D00987D,浙D02886D,浙D03330D,浙D05855D,浙D06636D,浙D07038D,浙D07588D,浙D07958D,浙D08008D,浙D08086D,浙D08300D,浙D08308D,浙D08309D,浙D08322D,浙D08323D,浙D08336D,浙D08366D,浙D08369D,浙D08379D,浙D08389D,浙D08390D,浙D08393D,浙D08539D,浙D08676D,浙D08707D,浙D08766D,浙D08772D,浙D08775D,浙D08781D,浙D08789D,浙D08795D,浙D08797D,浙D08821D,浙D08871D,浙D08893D,浙D08929D,浙D09669D,浙D09928D,浙D09939D,浙D00881D,浙D00897D,浙D01698D,浙D06861D,浙D07198D,浙D07908D,浙D07965D,浙D08038D,浙D08238D,浙D08326D,浙D08356D,浙D08376D,浙D08589D,浙D08661D,浙D08691D,浙D08755D,浙D08757D,浙D08790D,浙D09086D,浙D09589D,浙D09655D,浙D09717D,浙D09786D,浙D09863D,浙D09875D,浙D09901D,浙D09903D,浙D00177D,浙D00338D,浙D00766D,浙D01018D,浙D01212D,浙D01578D,浙D01777D,浙D01819D,浙D01958D,浙D01968D,浙D01980D,浙D01985D,浙D01996D,浙D02028D,浙D02158D,浙D02258D,浙D02378D,浙D02626D,浙D02678D,浙D02699D,浙D02755D,浙D03222D,浙D03233D,浙D03339D,浙D03518D,浙D03569D,浙D03577D,浙D03668D,浙D03897D,浙D05008D,浙D05085D,浙D05155D,浙D05565D,浙D05575D,浙D05755D,浙D06288D,浙D06587D,浙D06768D,浙D07116D,浙D07171D,浙D07177D,浙D07189D,浙D07199D,浙D08117D,浙D08218D,浙D08329D,浙D08578D,浙D09588D,浙D09659D,浙D09689D,浙D00169D,浙D01628D,浙D01817D,浙D02559D,浙D03098D,浙D03335D,浙D07186D,浙D07286D,浙D08139D,浙D08938D,浙D01695D,浙D01786D,浙D01969D,浙D02238D,浙D02908D,浙D03508D,浙D03628D,浙D03738D,浙D05308D,浙D06078D,浙D06229D,浙D06368D,浙D06738D,浙D06908D,浙D07295D,浙D08155D,浙D09579D,浙D09596D,浙D02259D,浙D03178D,浙D03278D,浙D03289D,浙D03659D,浙D03695D,浙D05238D,浙D05638D,浙D06356D,浙D07129D,浙D07219D,浙D07238D,浙D07279D,浙D07338D,浙D07728D,浙D07919D,浙D07976D,浙D08319D,浙D08359D,浙D09688D,浙D02629D,浙D02989D,浙D03568D,浙D06066D,浙D06599D,浙D06879D,浙D06968D,浙D06995D,浙D07959D,浙D07992D,浙D08006D,浙D08668D,浙D08796D,浙D09586D,浙D09678D,浙D09681D,浙D09838D,浙D09993D,浙D00508D,浙D03918D,浙D05055D,浙D05389D,浙D05775D,浙D08908D,浙D00218D,浙D05128D,浙D05768D,浙D06898D,浙D06938D,浙D09958D,浙D01717D,浙D03837D,浙D05509D,浙D05677D,浙D05708D,浙D06108D,浙D06355D,浙D07898D,浙D08069D,浙D09097D,浙D05099D,浙D05218D,浙D05569D,浙D05978D,浙D06398D,浙D07739D,浙D07788D,浙D08585D,浙D07358D,浙D00918D,浙D05223D,浙D05986D,浙D05158D,浙D08001D,浙D08098D,浙D08268D,浙D08285D,浙D08915D,浙D09555D,浙D09683D,浙D09783D,浙D09998D,浙D07008D,浙D03678D,浙D03698D,浙D07208D,浙D08338D,浙D08396D,浙D00109D,浙D00821D,浙D01156D,浙D03358D,浙D09602D; // Functions to show/hide the info modal function showExtraInfo(modalId) { const modal document.getElementById(modalId); if (modal) modal.style.display flex; } function closeExtraInfo(modalId) { const modal document.getElementById(modalId); if (modal) modal.style.display none; } // NEW Functions to show/hide the image modal function showImageModal(modalId) { event.stopPropagation(); const modal document.getElementById(modalId); if (modal) modal.style.display flex; } function closeImageModal(modalId) { event.stopPropagation(); const modal document.getElementById(modalId); if (modal) modal.style.display none; } // Close modal if user clicks outside of it window.onclick function(event) { if (event.target.classList.contains(info-modal) || event.target.classList.contains(image-modal)) { event.target.style.display none; } } async function fetchSuggestions(query, inputElement, suggestionsList) { const response await fetch(`/plate-suggestions?query${encodeURIComponent(query)}`); const suggestions await response.json(); if (suggestions.length > 0) { suggestionsList.innerHTML suggestions.map(s > `li>${s}/li>`).join(); suggestionsList.style.display block; } else { suggestionsList.style.display none; } } function setupAutocomplete(inputElement, suggestionsList) { inputElement.addEventListener(input, function () { const query inputElement.value.trim(); if (query.length > 0) { fetchSuggestions(query, inputElement, suggestionsList); } else { suggestionsList.innerHTML ; suggestionsList.style.display none; } }); suggestionsList.addEventListener(click, function (event) { if (event.target.tagName LI) { const fullSuggestion event.target.textContent; const platePart fullSuggestion.split( - )0; inputElement.value platePart; suggestionsList.style.display none; } }); } document.addEventListener(DOMContentLoaded, function () { setupAutocomplete(document.getElementById(plate), document.getElementById(plateSuggestions)); setupAutocomplete(document.getElementById(addPlate), document.getElementById(addPlateSuggestions)); }); document.getElementById(model).addEventListener(change, function() { if (this.value) { document.getElementById(plate).disabled true; document.getElementById(route).disabled true; } else { document.getElementById(plate).disabled false; document.getElementById(route).disabled false; } }); document.getElementById(plate).addEventListener(input, function() { if (this.value) { document.getElementById(model).disabled true; document.getElementById(route).disabled true; } else { document.getElementById(model).disabled false; document.getElementById(route).disabled false; } }); document.getElementById(route).addEventListener(change, function() { if (this.value) { document.getElementById(model).disabled true; document.getElementById(plate).disabled true; } else { document.getElementById(model).disabled false; document.getElementById(plate).disabled false; } }); async function performQuery(params) { const queryUrl /query? + params; document.getElementById(result).innerHTML p>正在查询.../p>; const response await fetch(queryUrl); const data await response.text(); document.getElementById(result).innerHTML data; document.getElementById(queryForm).reset(); document.getElementById(model).disabled false; document.getElementById(plate).disabled false; document.getElementById(route).disabled false; } document.getElementById(queryForm).addEventListener(submit, async function(event) { event.preventDefault(); const model document.getElementById(model).value; const plate document.getElementById(plate).value; const route document.getElementById(route).value; let params ; if (model) params model + encodeURIComponent(model); else if (plate) params plate + encodeURIComponent(plate); else if (route) params route + encodeURIComponent(route); if (params) { performQuery(params); } }); document.getElementById(randomQueryBtn).addEventListener(click, function() { if (allPlates && allPlates.length > 0) { const randomIndex Math.floor(Math.random() * allPlates.length); const randomPlate allPlatesrandomIndex; performQuery(plate + encodeURIComponent(randomPlate)); } else { document.getElementById(result).innerHTML p>没有可供随机查询的车辆数据。/p>; } }); document.getElementById(addForm).addEventListener(submit, async function(event) { event.preventDefault(); const plate document.getElementById(addPlate).value; const route document.getElementById(addRoute).value; const addResultDiv document.getElementById(addResult); const response await fetch(/admin-action, { method: POST, body: JSON.stringify({ action: addOrUpdateRoute, plateNumber: plate, route }), headers: { Content-Type: application/json } }); const data await response.json(); addResultDiv.textContent data.message; addResultDiv.style.color data.success ? green : red; if (data.success) { document.getElementById(addForm).reset(); } }); /script> /body> /html>
Port 443
HTTP/1.1 200 OKDate: Tue, 14 Oct 2025 10:02:27 GMTContent-Type: text/html;charsetUTF-8Content-Length: 41883Connection: keep-aliveVary: accept-encodingReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?s6e8FYA6ko%2FBEcRPkYsW%2F%2Fg9bL8kQ5eGS1avVvZ%2FiPLcw5VdL7At6yv28Y0qYi4r9s3jLApkkRsLgBslnk3DHrbPiTbNC5%2BaZuUOCT8G3UyyXZYELg3GIYz%2F2}}Nel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Server: cloudflareCF-RAY: 98e63dc4da5058d9-PDXalt-svc: h3:443; ma86400 !DOCTYPE html> html langen> head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>诸暨公交查询系统/title> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css> link hrefhttps://fonts.googleapis.com/css2?familyRoboto:wght@400;500;700&displayswap relstylesheet> style> body { font-family: Roboto, sans-serif; background-color: #f5f7fa; background-image: url(data:image/svg+xml;utf8,svg xmlnshttp://www.w3.org/2000/svg width200 height200 viewBox0 0 200 200>g fillnone stroke%233498db stroke-width1.5 stroke-opacity0.2>path dM30 60 h100 a10 10 0 0 1 10 10 v30 a10 10 0 0 1 -10 10 h-100 a10 10 0 0 1 -10 -10 v-30 a10 10 0 0 1 10 -10 z/>circle cx50 cy100 r15/>circle cx110 cy100 r15/>path dM40 70 h20 v10 h-20 z M70 70 h40 v10 h-40 z/>/g>/svg>); background-repeat: repeat; background-size: 200px 200px; color: #333; margin: 0; padding: 20px; position: relative; overflow-x: hidden; } h1 { color: #2c3e50; margin-bottom: 10px; z-index: 2; position: relative; } h2 { font-size: 16px; color: #7f8c8d; margin-bottom: 20px; font-weight: 400; } h3 { color: #3498db; margin-top: 30px; border-bottom: 2px solid #3498db; padding-bottom: 10px; } .container { max-width: 800px; margin: 0 auto; background: #fff; padding: 25px; border-radius: 10px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); position: relative; z-index: 2; } .form-group { margin-bottom: 15px; } label { display: block; margin-bottom: 5px; font-weight: 500; color: #2c3e50; } select, input { padding: 12px; width: 100%; box-sizing: border-box; border: 1px solid #ddd; border-radius: 6px; font-size: 16px; } select:focus, input:focus { border-color: #3498db; outline: none; box-shadow: 0 0 5px rgba(52, 152, 219, 0.3); } button { padding: 12px 20px; background-color: #3498db; color: white; border: none; cursor: pointer; border-radius: 6px; font-size: 16px; } button:hover { background-color: #2980b9; transform: translateY(-2px); } .form-buttons { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; } .form-buttons buttontypesubmit { width: 100%; } #randomQueryBtn { padding: 12px 15px; } #result, #addResult { margin-top: 20px; } #result h3 { margin-top: 0; color: #3498db; } #result h4, #result h5, #result h6 { color: #2c3e50; } .result-container { margin-top: 10px; } .result-summary { background-color: #e8f4fc; padding: 10px; border-radius: 6px; margin-bottom: 15px; } .result-section-title { font-size: 20px; margin-bottom: 15px; color: #3498db; border-bottom: 1px solid #ddd; padding-bottom: 5px; } .archived-title { color: #7f8c8d; } .detailed-model, .detailed-plate { background-color: transparent; border: none; padding: 0; margin-bottom: 0; box-shadow: none; } .model-title { margin-top: 0; font-size: 18px; color: #2c3e50; margin-bottom: 10px; } .model-alias { font-size: 0.9em; color: #7f8c8d; } .model-group-title { font-size: 18px; color: #2c3e50; margin-top: 25px; margin-bottom: 15px; padding-bottom: 8px; border-bottom: 1px solid #ddd; } .archived-model-title { color: #7f8c8d; border-bottom-color: #e0e0e0; } .sub-title { font-size: 16px; margin-bottom: 10px; color: #3498db; } .model-details { margin-bottom: 15px; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 10px; } .model-details-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px 20px; margin-bottom: 15px; } .model-details-grid p { margin: 5px 0; font-size: 14px; display: flex; align-items: center; } .model-details-grid .fa-fw { margin-right: 8px; color: #3498db; } .notes-field { grid-column: 1 / -1; } .model-details p { margin: 5px 0; font-size: 14px; } .plate-list-new { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 15px; margin-top: 10px; } .plate-card-new { background-color: #f5f7fa; border-radius: 8px; padding: 10px 5px; border: 1px solid #e0e0e0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 4px; } .archived-plate { background-color: #f0f0f0; border-color: #ccc; } .plate-info-centered { font-size: 16px; font-weight: 500; width: 100%; cursor: pointer; transition: transform 0.2s; } .plate-info-centered:hover { transform: scale(1.05); } .plate-icons { font-size: 16px; min-height: 20px; display: flex; align-items: center; justify-content: center; gap: 10px; } .info-icon { cursor: pointer; color: #f39c12; } .image-icon { cursor: pointer; color: #1abc9c; } .plate-special-paint { display: flex; align-items: center; justify-content: center; min-height: 22px; } .plate-record-time { font-size: 12px; color: #7f8c8d; width: 100%; } .route-info { margin-top: 5px; } .route-item { font-size: 14px; margin: 5px 0; color: #34495e; } .archived-route { color: #7f8c8d; font-style: italic; } .no-route { color: #7f8c8d; font-style: italic; margin: 5px 0; } .archived-category { background-color: #f9f9f9; padding: 10px; border-radius: 6px; border: 1px solid #e0e0e0; } .route-category { margin-bottom: 10px; } .detailed-route .route-card-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; } .route-card { background-color: #e8f4fc; border: 1px solid #b8dcf5; border-radius: 6px; padding: 8px; } .archived-route-card { background-color: #f0f0f0; border-color: #ccc; color: #7f8c8d; } .route-card-title { margin: 0 0 5px 0; font-size: 14px; font-weight: 500; color: #2c3e50; } .archived-route .route-sign { font-style: normal; } .archived-route-card .route-card-title { color: #7f8c8d; } .route-card-time { margin: 0; font-size: 12px; color: #7f8c8d; } .route-header-card { background-color: #e8f4fc; border: 1px solid #b8dcf5; border-radius: 8px; padding: 15px; margin-bottom: 10px; display: flex; justify-content: center; align-items: center; } .route-header-title { margin: 0; font-size: 22px; color: #2c3e50; } .accessible-info-card, .special-paint-info-card { border-radius: 6px; padding: 10px; margin-bottom: 10px; } .accessible-info-card { background-color: #e6f3e6; border: 1px solid #b8d8b8; } .accessible-info-text, .special-paint-info-text { margin: 0; font-size: 16px; } .accessible-info-text { color: #2c6c2c; } .special-paint-info-card { background-color: #ffebcc; border: 1px solid #ffcc80; } .special-paint-info-text { color: #d35400; } .result-divider { border-bottom: 2px dashed #ddd; margin: 20px 0; } .no-data { color: #7f8c8d; font-style: italic; margin-bottom: 15px; } .suggestions-list { list-style: none; margin: 0; padding: 0; border: 1px solid #ddd; max-height: 200px; overflow-y: auto; display: none; background: white; border-radius: 6px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); position: absolute; width: 100%; z-index: 1000; } .suggestions-list li { padding: 12px; cursor: pointer; } .suggestions-list li:hover { background-color: #f0f0f0; } .admin-btn { margin-top: 20px; background-color: #7f8c8d; } .admin-btn:hover { background-color: #95a5a6; } .plate-number { display: inline-block; background-color: #FFD700; color: black; padding: 3px 8px; border-radius: 4px; border: 1px solid #333; font-family: monospace; font-size: 16px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); margin-right: 5px; } .electric-plate { background: linear-gradient(to right, #FFD700, #2ecc71); } .special-paint-box { display: inline-flex; align-items: center; border: 1px solid orange; border-radius: 5px; background-color: #fff; color: orange; font-size: 14px; padding: 2px 5px; animation: glow 1.5s infinite alternate; } @keyframes glow { from { text-shadow: 0 0 5px orange, 0 0 10px orange; } to { text-shadow: 0 0 15px orange, 0 0 20px orange; } } .special-paint-box-small { display: inline-flex; align-items: center; border: 1px solid orange; border-radius: 5px; background-color: #fff; color: orange; font-size: 11px; padding: 2px 4px; } .route-sign { display: inline-block; padding: 5px 10px; background-color: #fff; border: 2px solid #000; border-radius: 5px; font-weight: bold; font-size: 16px; color: #000; margin: 0 5px; text-align: center; } .info-modal { display: none; position: fixed; z-index: 1001; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.6); align-items: center; justify-content: center; } .info-modal-content { background-color: #fefefe; margin: auto; padding: 20px; border: 1px solid #888; width: 80%; max-width: 500px; border-radius: 8px; position: relative; } .info-modal-content .route-item { font-size: 16px; } .image-modal { display: none; position: fixed; z-index: 1002; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.8); display: flex; align-items: center; justify-content: center; } .image-modal-content { background-color: #fff; padding: 20px; border-radius: 8px; width: 90%; max-width: 700px; position: relative; animation: fadeIn 0.3s; } /* NEW Styles for image gallery in modal */ .image-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin-top: 15px; max-height: 70vh; overflow-y: auto; } .image-gallery img { width: 100%; height: auto; border-radius: 8px; border: 1px solid #ddd; } .close-button { color: #aaa; float: right; font-size: 28px; font-weight: bold; position: absolute; top: 10px; right: 15px; } .close-button:hover, .close-button:focus { color: black; text-decoration: none; cursor: pointer; } .animate-fade-in { animation: fadeIn 0.5s ease-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .vehicle-stats { margin-bottom: 20px; padding: 10px; background-color: #f0f8ff; border-radius: 6px; display: flex; gap: 20px; align-items: center; flex-wrap: wrap; } .status-dot { height: 10px; width: 10px; border-radius: 50%; display: inline-block; margin-right: 8px; } .active-dot { background-color: #2ecc71; } .offline-dot { background-color: #95a5a6; } .accessible-routes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); gap: 10px; margin-top: 15px; } .route-sign-link { display: inline-block; padding: 8px 12px; background-color: #fff; border: 2px solid #000; border-radius: 5px; font-weight: bold; font-size: 18px; color: #000; text-align: center; cursor: pointer; transition: background-color 0.2s, color 0.2s, border-color 0.2s; } .route-sign-link:hover { background-color: #3498db; color: #fff; border-color: #3498db; } .clickable-link { cursor: pointer; text-decoration: underline; color: #3498db; } .clickable-link:hover { color: #2980b9; } @media (max-width: 600px) { body { padding: 10px; } .container { padding: 15px; } h1 { font-size: 24px; } .model-details { grid-template-columns: 1fr; } } /* 黑暗模式适配 */ @media (prefers-color-scheme: dark) { body { background-color: #1f1f1f; background-image: url(data:image/svg+xml;utf8,svg xmlnshttp://www.w3.org/2000/svg width200 height200 viewBox0 0 200 200>g fillnone stroke%234dabf7 stroke-width1.5 stroke-opacity0.2>path dM30 60 h100 a10 10 0 0 1 10 10 v30 a10 10 0 0 1 -10 10 h-100 a10 10 0 0 1 -10 -10 v-30 a10 10 0 0 1 10 -10 z/>circle cx50 cy100 r15/>circle cx110 cy100 r15/>path dM40 70 h20 v10 h-20 z M70 70 h40 v10 h-40 z/>/g>/svg>); color: #e0e0e0; } .container { background: #2c2c2c; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } h1, label, #result h4, #result h5, #result h6, .model-title, .route-card-title { color: #f0f0f0; } h2, .archived-title, .archived-route, .no-route, .no-data, .route-card-time, .archived-route-card, .archived-route-card .route-card-title, .archived-model-title, .model-alias { color: #b0b0b0; } h3, #result h3, .sub-title, .result-section-title { color: #4dabf7; } .result-section-title { border-bottom-color: #555; } .model-group-title { color: #f0f0f0; border-bottom-color: #555; } select, input { background-color: #3a3a3a; color: #e0e0e0; border-color: #555; } select:focus, input:focus { border-color: #4dabf7; box-shadow: 0 0 5px rgba(77, 171, 247, 0.5); } button { background-color: #4dabf7; } button:hover { background-color: #339af0; } #result, #addResult { background-color: transparent; } .result-summary { background-color: #1e3a8a; } .detailed-model, .detailed-plate { background-color: transparent; border: none; padding: 0; margin-bottom: 0; box-shadow: none; } .plate-card-new { background-color: #3a3a3a; border-color: #555; } .archived-plate { background-color: #454545; border-color: #666; } .route-item { color: #e0e0e0; } .archived-category { background-color: #3a3a3a; border-color: #555; } .route-card { background-color: #1e3a8a; border-color: #335f9e; } .archived-route-card { background-color: #454545; border-color: #666; color: #b0b0b0; } .route-header-card { background-color: #1e3a8a; border-color: #335f9e; } .accessible-info-card { background-color: #2d4a2d; border-color: #4a6f4a; } .accessible-info-text { color: #a3e4a3; } .special-paint-info-card { background-color: #4a331a; border-color: #8c6e4a; } .special-paint-info-text { color: #ffb74d; } .result-divider { border-bottom-color: #555; } .suggestions-list { background: #3a3a3a; border-color: #555; } .suggestions-list li:hover { background-color: #454545; } .admin-btn { background-color: #868e96; } .admin-btn:hover { background-color: #adb5bd; } .plate-number { color: #000; border-color: #666; } .route-sign { background-color: #444; border-color: #ccc; color: #ccc; } .route-sign-link { background-color: #444; border-color: #ccc; color: #ccc; } .route-sign-link:hover { background-color: #4dabf7; color: #1f1f1f; border-color: #4dabf7; } .special-paint-box, .special-paint-box-small { border-color: #FFA500; background-color: #333; color: #FFA500; } .info-modal-content { background-color: #3a3a3a; color: #e0e0e0; } .image-modal-content { background-color: #3a3a3a; color: #e0e0e0; } .image-gallery img { border-color: #555; } .close-button { color: #ccc; } .close-button:hover { color: #fff; } .vehicle-stats { background-color: #2c3e50; } } /style> /head> body> div classcontainer> h1>i classfas fa-bus>/i> 诸暨公交查询系统/h1> h2>i classfas fa-info-circle>/i> 本系统可查询诸暨城市、城乡、城际公交车辆和运行数据,数据具有时效性,欢迎在下方添加车辆的运行记录/h2> div classvehicle-stats> span>span classstatus-dot active-dot>/span>活跃车辆: 354/span> span>span classstatus-dot offline-dot>/span>下线车辆: 41/span> span>i classfas fa-wheelchair stylecolor: #87cefa;>/i> 无障碍车辆: 90/span> /div> h3>i classfas fa-search>/i> 查询/h3> h2>i classfas fa-exclamation-triangle>/i> 车型、车牌和线路只可选择一项查询/h2> form idqueryForm> div classform-group> label formodel>i classfas fa-bus>/i> 车型:/label> select idmodel namemodel> option value>-- 选择车型 --/option> option valueLCK6108EVG12>LCK6108EVG12 | 中通10米纯电/option>option valueLCK6669EVGE>LCK6669EVGE | 中通6米纯电/option>option valueLCK6809EVG3A7>LCK6809EVG3A7 | 中通8米纯电/option>option valueLCK6850EVG3A11>LCK6850EVG3A11 | 中通8.5米纯电/option>option valueNJL6859EV14>NJL6859EV14 | 开沃纯电/option>option valueXMQ6115FGBEVL1>XMQ6115FGBEVL1 | 金龙11米纯电/option>option valueXMQ6115FGBEVL1(长荣城际)>XMQ6115FGBEVL1(长荣城际) | 金龙11米纯电/option>option valueXMQ6850AGBEVL17>XMQ6850AGBEVL17 | 金龙8.5米纯电(第二批)/option>option valueXMQ6850AGBEVL22>XMQ6850AGBEVL22 | 金龙8.5米纯电(第三批)/option>option valueXMQ6850AGBEVL7>XMQ6850AGBEVL7 | 金龙8.5米纯电(初代)/option>option valueXMQ6900FGBEVL(2021)>XMQ6900FGBEVL(2021) | 金龙9米纯电/option>option valueXMQ6900FGBEVL(2023)>XMQ6900FGBEVL(2023) | 金龙9米纯电(第二批)/option>option valueZK6105CHEVNPG35C>ZK6105CHEVNPG35C | H10/option>option valueZK6106BEVG19E>ZK6106BEVG19E | E10i/option>option valueZK6106BEVG5L>ZK6106BEVG5L | U10/option>option valueZK6125BEVG59F>ZK6125BEVG59F | E12/option>option valueZK6650BEVG21>ZK6650BEVG21 | E6/option>option valueZK6775HNG2>ZK6775HNG2 | 宇通7米天然气/option>option valueZK6815BEVG19(绿白)>ZK6815BEVG19(绿白) | E8/option>option valueZK6815BEVG19(蓝白)>ZK6815BEVG19(蓝白) | E8/option>option valueZK6850BEVG57A>ZK6850BEVG57A | 长荣E8/option>option valueZK6856BEVG14E>ZK6856BEVG14E | E8MAX/option>option valueZK6856BEVG22L>ZK6856BEVG22L | 城乡E8MAX/option> /select> /div> div classform-group styleposition: relative;> label forplate>i classfas fa-id-card>/i> 车牌号:/label> input typetext idplate nameplate autocompleteoff placeholder输入车牌号(可模糊输入)> ul idplateSuggestions classsuggestions-list>/ul> /div> div classform-group> label forroute>i classfas fa-sign>/i> 线路:/label> select idroute nameroute> option value>-- 选择线路 --/option> option value1>1/option> option valueY1>Y1/option> option value快1>快1/option> option value2>2/option> option valueY2>Y2/option> option value6>6/option> option value7>7/option> option value8>8/option> option value9>9/option> option value10>10/option> option value11>11/option> option value12>12/option> option value13>13/option> option value15>15/option> option value16>16/option> option value17>17/option> option value18>18/option> option value19>19/option> option value20>20/option> option value21>21/option> option value22>22/option> option value23>23/option> option value25>25/option> option value26>26/option> option value27>27/option> option value28>28/option> option value29>29/option> option value30>30/option> option value31>31/option> option value32>32/option> option value35>35/option> option value36>36/option> option value37>37/option> option value38>38/option> option value39>39/option> option value50>50/option> option value51>51/option> option value52>52/option> option value53>53/option> option value113>113/option> option value133>133/option> option value151>151/option> option value8001>8001/option> option value8002>8002/option> option value8003>8003/option> option value8005>8005/option> option value8006>8006/option> option value8007>8007/option> option value8009>8009/option> option value专线>专线/option> option value凰桐河上专线>凰桐河上专线/option> option value青春巴士夜间专线>青春巴士夜间专线/option> /select> /div> div classform-buttons> button typesubmit>i classfas fa-search>/i> 查询/button> button typebutton idrandomQueryBtn title随机查询一辆车>i classfas fa-dice>/i>/button> /div> /form> div idresult>/div> h3>i classfas fa-wheelchair>/i> 无障碍线路/h3> div classaccessible-routes-grid> div classroute-sign-link onclickperformQuery(routeY1)>Y1/div>div classroute-sign-link onclickperformQuery(routeY2)>Y2/div>div classroute-sign-link onclickperformQuery(route17)>17/div>div classroute-sign-link onclickperformQuery(route22)>22/div>div classroute-sign-link onclickperformQuery(route26)>26/div>div classroute-sign-link onclickperformQuery(route28)>28/div>div classroute-sign-link onclickperformQuery(route31)>31/div>div classroute-sign-link onclickperformQuery(route38)>38/div>div classroute-sign-link onclickperformQuery(route50)>50/div>div classroute-sign-link onclickperformQuery(route113)>113/div>div classroute-sign-link onclickperformQuery(route133)>133/div>div classroute-sign-link onclickperformQuery(route151)>151/div>div classroute-sign-link onclickperformQuery(route%E4%B8%93%E7%BA%BF)>专线/div> /div> h3>i classfas fa-plus-circle>/i> 添加车辆运行记录/h3> form idaddForm> div classform-group styleposition: relative;> label foraddPlate>i classfas fa-id-card>/i> 车牌:/label> input typetext idaddPlate nameaddPlate autocompleteoff placeholder输入车牌号> ul idaddPlateSuggestions classsuggestions-list>/ul> /div> div classform-group> label foraddRoute>i classfas fa-sign>/i> 线路:/label> input typetext idaddRoute nameaddRoute required placeholder输入线路(若有字母,请使用大写字母,如Y1)> /div> button typesubmit>i classfas fa-plus>/i> 增加新记录/button> /form> div idaddResult>/div> button classadmin-btn onclickwindow.location.href/admin>i classfas fa-user-shield>/i> 访问管理员页面/button> /div> script> const allPlates 浙D01378D,浙D01558D,浙DJ5023,浙DJ5302,浙DJ5312,浙DJ5372,浙DJ5392,浙DJ5702,浙DJ5712,浙DJ5713,浙DJ5720,浙DJ5721,浙DJ5731,浙DJ5732,浙DJ5752,浙DJ5791,浙DJ5831,浙DJ5862,浙DJ5893,浙DJ5901,浙DJ5902,浙DJ5903,浙DJ5912,浙DJ5913,浙DJ5915,浙DJ5920,浙DJ5921,浙DJ5931,浙DJ5932,浙DJ5935,浙DJ5951,浙DJ5952,浙DJ5953,浙DJ5960,浙DJ5962,浙DJ5963,浙DJ5970,浙DJ5971,浙DJ5972,浙DJ5973,浙DJ5980,浙DJ5981,浙DJ5982,浙DJ5983,浙DJ5987,浙DJ5990,浙DJ5991,浙DJ5992,浙DJ5993,浙DJ5995,浙DJ5996,浙DJ5997,浙DJ5998,浙DN1518,浙DN1568,浙DN1588,浙D07998D,浙D08788D,浙D08830D,浙D08857D,浙D08860D,浙D08869D,浙D08877D,浙D08878D,浙D08882D,浙D08890D,浙D08896D,浙D08899D,浙D08378D,浙D08806D,浙D08808D,浙D08838D,浙D08858D,浙D08866D,浙D08868D,浙D08879D,浙D08880D,浙D08887D,浙D08888D,浙D08889D,浙DB7683,浙DB7962,浙DB9692,浙DB9783,浙DB9792,浙DF9779,浙D02288D,浙D08388D,浙D08809D,浙D08855D,浙D08886D,浙D08088D,浙D08158D,浙D08228D,浙D08381D,浙D08383D,浙D08397D,浙D08398D,浙D08708D,浙D08717D,浙D08785D,浙D08827D,浙D08311D,浙D08313D,浙D08318D,浙D08328D,浙D08355D,浙D08375D,浙D08380D,浙D08395D,浙D08738D,浙D08325D,浙D08330D,浙D08335D,浙D08339D,浙D08362D,浙D08377D,浙D02002D,浙D02218D,浙D02298D,浙D02608D,浙D02657D,浙D02667D,浙D02882D,浙D03388D,浙D03588D,浙D03589D,浙D05898D,浙D06198D,浙D06388D,浙D06665D,浙D07298D,浙D07798D,浙D07877D,浙D07909D,浙D07928D,浙D07955D,浙D07979D,浙D07981D,浙D07996D,浙D08000D,浙D08258D,浙D08368D,浙D08382D,浙D08399D,浙D08528D,浙D08709D,浙D08727D,浙D08730D,浙D08759D,浙D08765D,浙D08779D,浙D08851D,浙D09007D,浙D09088D,浙D09918D,浙D09923D,浙D00078D,浙D00987D,浙D02886D,浙D03330D,浙D05855D,浙D06636D,浙D07038D,浙D07588D,浙D07958D,浙D08008D,浙D08086D,浙D08300D,浙D08308D,浙D08309D,浙D08322D,浙D08323D,浙D08336D,浙D08366D,浙D08369D,浙D08379D,浙D08389D,浙D08390D,浙D08393D,浙D08539D,浙D08676D,浙D08707D,浙D08766D,浙D08772D,浙D08775D,浙D08781D,浙D08789D,浙D08795D,浙D08797D,浙D08821D,浙D08871D,浙D08893D,浙D08929D,浙D09669D,浙D09928D,浙D09939D,浙D00881D,浙D00897D,浙D01698D,浙D06861D,浙D07198D,浙D07908D,浙D07965D,浙D08038D,浙D08238D,浙D08326D,浙D08356D,浙D08376D,浙D08589D,浙D08661D,浙D08691D,浙D08755D,浙D08757D,浙D08790D,浙D09086D,浙D09589D,浙D09655D,浙D09717D,浙D09786D,浙D09863D,浙D09875D,浙D09901D,浙D09903D,浙D00177D,浙D00338D,浙D00766D,浙D01018D,浙D01212D,浙D01578D,浙D01777D,浙D01819D,浙D01958D,浙D01968D,浙D01980D,浙D01985D,浙D01996D,浙D02028D,浙D02158D,浙D02258D,浙D02378D,浙D02626D,浙D02678D,浙D02699D,浙D02755D,浙D03222D,浙D03233D,浙D03339D,浙D03518D,浙D03569D,浙D03577D,浙D03668D,浙D03897D,浙D05008D,浙D05085D,浙D05155D,浙D05565D,浙D05575D,浙D05755D,浙D06288D,浙D06587D,浙D06768D,浙D07116D,浙D07171D,浙D07177D,浙D07189D,浙D07199D,浙D08117D,浙D08218D,浙D08329D,浙D08578D,浙D09588D,浙D09659D,浙D09689D,浙D00169D,浙D01628D,浙D01817D,浙D02559D,浙D03098D,浙D03335D,浙D07186D,浙D07286D,浙D08139D,浙D08938D,浙D01695D,浙D01786D,浙D01969D,浙D02238D,浙D02908D,浙D03508D,浙D03628D,浙D03738D,浙D05308D,浙D06078D,浙D06229D,浙D06368D,浙D06738D,浙D06908D,浙D07295D,浙D08155D,浙D09579D,浙D09596D,浙D02259D,浙D03178D,浙D03278D,浙D03289D,浙D03659D,浙D03695D,浙D05238D,浙D05638D,浙D06356D,浙D07129D,浙D07219D,浙D07238D,浙D07279D,浙D07338D,浙D07728D,浙D07919D,浙D07976D,浙D08319D,浙D08359D,浙D09688D,浙D02629D,浙D02989D,浙D03568D,浙D06066D,浙D06599D,浙D06879D,浙D06968D,浙D06995D,浙D07959D,浙D07992D,浙D08006D,浙D08668D,浙D08796D,浙D09586D,浙D09678D,浙D09681D,浙D09838D,浙D09993D,浙D00508D,浙D03918D,浙D05055D,浙D05389D,浙D05775D,浙D08908D,浙D00218D,浙D05128D,浙D05768D,浙D06898D,浙D06938D,浙D09958D,浙D01717D,浙D03837D,浙D05509D,浙D05677D,浙D05708D,浙D06108D,浙D06355D,浙D07898D,浙D08069D,浙D09097D,浙D05099D,浙D05218D,浙D05569D,浙D05978D,浙D06398D,浙D07739D,浙D07788D,浙D08585D,浙D07358D,浙D00918D,浙D05223D,浙D05986D,浙D05158D,浙D08001D,浙D08098D,浙D08268D,浙D08285D,浙D08915D,浙D09555D,浙D09683D,浙D09783D,浙D09998D,浙D07008D,浙D03678D,浙D03698D,浙D07208D,浙D08338D,浙D08396D,浙D00109D,浙D00821D,浙D01156D,浙D03358D,浙D09602D; // Functions to show/hide the info modal function showExtraInfo(modalId) { const modal document.getElementById(modalId); if (modal) modal.style.display flex; } function closeExtraInfo(modalId) { const modal document.getElementById(modalId); if (modal) modal.style.display none; } // NEW Functions to show/hide the image modal function showImageModal(modalId) { event.stopPropagation(); const modal document.getElementById(modalId); if (modal) modal.style.display flex; } function closeImageModal(modalId) { event.stopPropagation(); const modal document.getElementById(modalId); if (modal) modal.style.display none; } // Close modal if user clicks outside of it window.onclick function(event) { if (event.target.classList.contains(info-modal) || event.target.classList.contains(image-modal)) { event.target.style.display none; } } async function fetchSuggestions(query, inputElement, suggestionsList) { const response await fetch(`/plate-suggestions?query${encodeURIComponent(query)}`); const suggestions await response.json(); if (suggestions.length > 0) { suggestionsList.innerHTML suggestions.map(s > `li>${s}/li>`).join(); suggestionsList.style.display block; } else { suggestionsList.style.display none; } } function setupAutocomplete(inputElement, suggestionsList) { inputElement.addEventListener(input, function () { const query inputElement.value.trim(); if (query.length > 0) { fetchSuggestions(query, inputElement, suggestionsList); } else { suggestionsList.innerHTML ; suggestionsList.style.display none; } }); suggestionsList.addEventListener(click, function (event) { if (event.target.tagName LI) { const fullSuggestion event.target.textContent; const platePart fullSuggestion.split( - )0; inputElement.value platePart; suggestionsList.style.display none; } }); } document.addEventListener(DOMContentLoaded, function () { setupAutocomplete(document.getElementById(plate), document.getElementById(plateSuggestions)); setupAutocomplete(document.getElementById(addPlate), document.getElementById(addPlateSuggestions)); }); document.getElementById(model).addEventListener(change, function() { if (this.value) { document.getElementById(plate).disabled true; document.getElementById(route).disabled true; } else { document.getElementById(plate).disabled false; document.getElementById(route).disabled false; } }); document.getElementById(plate).addEventListener(input, function() { if (this.value) { document.getElementById(model).disabled true; document.getElementById(route).disabled true; } else { document.getElementById(model).disabled false; document.getElementById(route).disabled false; } }); document.getElementById(route).addEventListener(change, function() { if (this.value) { document.getElementById(model).disabled true; document.getElementById(plate).disabled true; } else { document.getElementById(model).disabled false; document.getElementById(plate).disabled false; } }); async function performQuery(params) { const queryUrl /query? + params; document.getElementById(result).innerHTML p>正在查询.../p>; const response await fetch(queryUrl); const data await response.text(); document.getElementById(result).innerHTML data; document.getElementById(queryForm).reset(); document.getElementById(model).disabled false; document.getElementById(plate).disabled false; document.getElementById(route).disabled false; } document.getElementById(queryForm).addEventListener(submit, async function(event) { event.preventDefault(); const model document.getElementById(model).value; const plate document.getElementById(plate).value; const route document.getElementById(route).value; let params ; if (model) params model + encodeURIComponent(model); else if (plate) params plate + encodeURIComponent(plate); else if (route) params route + encodeURIComponent(route); if (params) { performQuery(params); } }); document.getElementById(randomQueryBtn).addEventListener(click, function() { if (allPlates && allPlates.length > 0) { const randomIndex Math.floor(Math.random() * allPlates.length); const randomPlate allPlatesrandomIndex; performQuery(plate + encodeURIComponent(randomPlate)); } else { document.getElementById(result).innerHTML p>没有可供随机查询的车辆数据。/p>; } }); document.getElementById(addForm).addEventListener(submit, async function(event) { event.preventDefault(); const plate document.getElementById(addPlate).value; const route document.getElementById(addRoute).value; const addResultDiv document.getElementById(addResult); const response await fetch(/admin-action, { method: POST, body: JSON.stringify({ action: addOrUpdateRoute, plateNumber: plate, route }), headers: { Content-Type: application/json } }); const data await response.json(); addResultDiv.textContent data.message; addResultDiv.style.color data.success ? green : red; if (data.success) { document.getElementById(addForm).reset(); } }); /script> /body> /html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]