gis-map-admin 2.2.3 → 2.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/gismap.umd.js CHANGED
@@ -18376,6 +18376,17 @@ var update = add("6dd908fb", content, true, {"sourceMap":false,"shadowMode":fals
18376
18376
  /* unused harmony reexport * */
18377
18377
 
18378
18378
 
18379
+ /***/ }),
18380
+
18381
+ /***/ "27c4":
18382
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
18383
+
18384
+ "use strict";
18385
+ /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_UVA_scheduling_vue_vue_type_style_index_0_id_7b6f0c39_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a0e1");
18386
+ /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_UVA_scheduling_vue_vue_type_style_index_0_id_7b6f0c39_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_UVA_scheduling_vue_vue_type_style_index_0_id_7b6f0c39_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
18387
+ /* unused harmony reexport * */
18388
+
18389
+
18379
18390
  /***/ }),
18380
18391
 
18381
18392
  /***/ "2877":
@@ -35873,6 +35884,20 @@ exports.push([module.i, ".videoPlay[data-v-56ca3169]{height:1.0416rem;width:1.84
35873
35884
  module.exports = exports;
35874
35885
 
35875
35886
 
35887
+ /***/ }),
35888
+
35889
+ /***/ "5848":
35890
+ /***/ (function(module, exports, __webpack_require__) {
35891
+
35892
+ // Imports
35893
+ var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
35894
+ exports = ___CSS_LOADER_API_IMPORT___(false);
35895
+ // Module
35896
+ exports.push([module.i, ".uva-scheduling[data-v-7b6f0c39]{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;border:1px solid rgba(1,170,253,.25);border-radius:.0104166rem;overflow:hidden;background:#062a46}.idle-view[data-v-7b6f0c39]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0}.idle-view .idle-content[data-v-7b6f0c39]{display:flex;flex-direction:column;align-items:center;gap:14px}.idle-view .idle-content svg[data-v-7b6f0c39]{width:48px;height:48px}.idle-view .idle-content p[data-v-7b6f0c39]{margin:0;font-size:.072916rem;color:#fff}.console-view[data-v-7b6f0c39]{position:relative;flex:1 1 auto;display:flex;flex-direction:column;min-height:0;background:#062a46}.console-view .topbar[data-v-7b6f0c39]{flex:0 0 auto;padding:10px 14px;background:linear-gradient(180deg,#1eace8,#0074d4);display:flex;align-items:center;justify-content:space-between}.console-view .topbar .topbar-left[data-v-7b6f0c39]{display:flex;align-items:center;gap:10px;min-width:0}.console-view .topbar .topbar-left .brand-icon[data-v-7b6f0c39]{width:24px;height:24px;flex:0 0 auto}.console-view .topbar .topbar-left .brand-icon svg[data-v-7b6f0c39]{width:100%;height:100%}.console-view .topbar .topbar-left .title-col[data-v-7b6f0c39]{min-width:0}.console-view .topbar .topbar-left .title-col h1[data-v-7b6f0c39]{margin:0;font-size:.083333rem;font-weight:700;line-height:1.2;color:#fff}.console-view .topbar .topbar-left .title-col p[data-v-7b6f0c39]{margin:0;font-size:.0625rem;color:hsla(0,0%,100%,.78);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console-view .topbar .topbar-right[data-v-7b6f0c39]{display:flex;align-items:center;gap:12px;flex:0 0 auto}.console-view .topbar .topbar-right .clock[data-v-7b6f0c39]{font-size:.0625rem;color:hsla(0,0%,100%,.78);white-space:nowrap}.console-view .topbar .topbar-right .live[data-v-7b6f0c39]{display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;background:#e5484d}.console-view .topbar .topbar-right .live i[data-v-7b6f0c39]{width:7px;height:7px;border-radius:50%;background:#fff}.console-view .topbar .topbar-right .live span[data-v-7b6f0c39]{font-size:.0625rem;font-weight:700;color:#fff;letter-spacing:.04em}.console-view .body[data-v-7b6f0c39]{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px;display:flex;flex-direction:column;gap:6px}.console-view .viewport[data-v-7b6f0c39]{position:relative;flex:2 2 0;min-width:0;border:1px solid rgba(1,170,253,.25);border-radius:10px;overflow:hidden;background:#04172a}.console-view .viewport .feed[data-v-7b6f0c39]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;background:#000}.console-view .viewport .feed-placeholder[data-v-7b6f0c39]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:rgba(1,170,253,.6);font-size:.0625rem;gap:8px;pointer-events:none}.console-view .viewport .feed-placeholder svg[data-v-7b6f0c39]{width:44px;height:44px}.console-view .viewport .hud[data-v-7b6f0c39]{position:absolute;left:10px;top:10px;display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;background:rgba(5,11,20,.7)}.console-view .viewport .hud .dot[data-v-7b6f0c39]{width:8px;height:8px;border-radius:50%;background:#ff5c5c;box-shadow:0 0 8px rgba(255,92,92,.9)}.console-view .viewport .hud .rec[data-v-7b6f0c39]{font-size:.0625rem;font-weight:500;color:#ff8a8a}.console-view .viewport .hud .sep[data-v-7b6f0c39]{font-size:.0625rem;color:#3a5578}.console-view .viewport .hud .cam[data-v-7b6f0c39]{font-size:.0625rem;color:#b8cce8}.console-view .console-row[data-v-7b6f0c39]{flex:0 0 auto;display:flex;gap:8px;align-items:stretch}.console-view .console-row.row-top[data-v-7b6f0c39]{flex:0 1 auto;height:50%;min-height:0}.console-view .console-row.row-bottom[data-v-7b6f0c39]{flex:1 1 auto}.console-view .card[data-v-7b6f0c39]{flex:1 1 0;min-width:0;background:rgba(3,44,76,.78);border:1px solid rgba(1,170,253,.35);border-radius:10px;padding:8px;display:flex;flex-direction:column}.console-view .card-title[data-v-7b6f0c39]{display:flex;align-items:center;gap:6px;flex:0 0 auto;margin-bottom:5px}.console-view .card-title .bar[data-v-7b6f0c39]{width:3px;height:14px;border-radius:2px;background:#29c6ff}.console-view .card-title span[data-v-7b6f0c39]{font-size:.072916rem;font-weight:600;color:#fff;white-space:nowrap}.console-view .card-title .seg.mini[data-v-7b6f0c39]{margin-left:auto;width:auto}.console-view .gimbal-body[data-v-7b6f0c39]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:0}.console-view .joystick[data-v-7b6f0c39]{width:96px;height:96px;flex:0 0 auto;align-self:center}.console-view .joystick .dir path[data-v-7b6f0c39]{cursor:pointer;transition:opacity .12s}.console-view .joystick .dir path[data-v-7b6f0c39]:hover{opacity:.72}.console-view .zoom-col[data-v-7b6f0c39]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:8px}.console-view .zoom-col .zoom-head[data-v-7b6f0c39]{display:flex;align-items:center;justify-content:space-between}.console-view .zoom-col .zoom-head .lbl[data-v-7b6f0c39]{font-size:.057rem;color:#fff;white-space:nowrap}.console-view .zoom-col .zoom-head .val[data-v-7b6f0c39]{font-size:.057rem;font-weight:500;color:#29c6ff;white-space:nowrap}.console-view .zoom-col .zoom-slider[data-v-7b6f0c39]{display:flex;align-items:center;gap:8px}.console-view .zoom-col .zoom-slider .zoom-track[data-v-7b6f0c39]{flex:1 1 auto;height:4px;border-radius:2px;background:hsla(0,0%,100%,.16);position:relative}.console-view .zoom-col .zoom-slider .zoom-track .zoom-fill[data-v-7b6f0c39]{height:4px;border-radius:2px;background:#29c6ff;transition:width .18s}.console-view .zoom-col .zoom-slider .alt-track[data-v-7b6f0c39]{flex:1 1 auto;text-align:center;font-size:.057rem;color:hsla(0,0%,100%,.5);white-space:nowrap}.console-view .zoom-col .chips[data-v-7b6f0c39]{display:flex;gap:6px}.console-view .roundbtn[data-v-7b6f0c39]{width:22px;height:22px;padding:0;flex:0 0 auto;background:rgba(1,60,100,.5);border:1px solid rgba(1,170,253,.5);border-radius:5px;display:flex;align-items:center;justify-content:center;cursor:pointer}.console-view .roundbtn[data-v-7b6f0c39]:hover{background:rgba(1,170,253,.22)}.console-view .chip[data-v-7b6f0c39]{flex:1 1 0;min-width:0;padding:4px;border:0;border-radius:6px;background:rgba(1,60,100,.5);color:#fff;font-size:.057rem;font-weight:500;cursor:pointer;white-space:nowrap}.console-view .chip[data-v-7b6f0c39]:hover{background:rgba(1,170,253,.22)}.console-view .chip.on[data-v-7b6f0c39]{background:#29c6ff;color:#04223c}.console-view .bc-input[data-v-7b6f0c39]{flex:0 0 auto;height:.145833rem;width:100%;padding:0 .0625rem;border:1px solid rgba(1,170,253,.5);border-radius:.0104166rem;background:rgba(1,60,100,.35);font-size:.0625rem;color:#fff;outline:none;box-sizing:border-box}.console-view .bc-input[data-v-7b6f0c39]::-moz-placeholder{color:hsla(0,0%,100%,.4)}.console-view .bc-input[data-v-7b6f0c39]:-ms-input-placeholder{color:hsla(0,0%,100%,.4)}.console-view .bc-input[data-v-7b6f0c39]::placeholder{color:hsla(0,0%,100%,.4)}.console-view .bc-input[data-v-7b6f0c39]:focus{border-color:#29c6ff;box-shadow:0 0 0 3px rgba(41,198,255,.18)}.console-view .vol-row[data-v-7b6f0c39]{display:flex;align-items:center;gap:8px}.console-view .vol-row .lbl[data-v-7b6f0c39]{font-size:.057rem;color:#fff;flex:0 0 auto;white-space:nowrap}.console-view .vol-row .vol-track[data-v-7b6f0c39]{flex:1 1 auto;height:4px;border-radius:2px;background:hsla(0,0%,100%,.16);position:relative;cursor:pointer}.console-view .vol-row .vol-track .vol-fill[data-v-7b6f0c39]{height:4px;border-radius:2px;background:#29c6ff}.console-view .vol-row .val[data-v-7b6f0c39]{font-size:.057rem;font-weight:500;color:#fff;width:30px;text-align:right;flex:0 0 auto;white-space:nowrap}.console-view .seg[data-v-7b6f0c39]{display:flex;gap:2px;padding:2px;border-radius:6px;background:rgba(1,60,100,.5);flex:0 0 auto}.console-view .seg.wide[data-v-7b6f0c39]{width:100%}.console-view .seg.fixed[data-v-7b6f0c39]{width:76px}.console-view .seg button[data-v-7b6f0c39]{flex:1 1 0;min-width:0;padding:2px 2px;border:0;border-radius:4px;background:transparent;color:#fff;font-size:.057rem;cursor:pointer;white-space:nowrap}.console-view .seg button[data-v-7b6f0c39]:hover{color:#fff}.console-view .seg button.on[data-v-7b6f0c39]{background:linear-gradient(180deg,#1eace8,#0074d4);color:#fff;font-weight:500}.console-view .seg button.on[data-v-7b6f0c39]:hover{color:#fff}.console-view .seg.dim[data-v-7b6f0c39]{opacity:.45;pointer-events:none}.console-view .bc-actions[data-v-7b6f0c39]{display:flex;gap:8px;margin-top:auto}.console-view .btn[data-v-7b6f0c39]{flex:1 1 0;min-width:0;height:24px;border-radius:6px;font-size:.0625rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}.console-view .btn.btn-play[data-v-7b6f0c39]{border:0;background:linear-gradient(180deg,#1eace8,#0074d4);color:#fff}.console-view .btn.btn-play[data-v-7b6f0c39]:hover{background:linear-gradient(180deg,#38bef6,#0c86e8)}.console-view .btn.btn-stop[data-v-7b6f0c39]{background:rgba(1,60,100,.35);border:1px solid rgba(229,72,77,.6);color:#ff8a8a}.console-view .btn.btn-stop[data-v-7b6f0c39]:hover{background:rgba(229,72,77,.15)}.console-view .stat-grid[data-v-7b6f0c39]{flex:1 1 auto;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:4px}.console-view .stat-grid .stat[data-v-7b6f0c39]{background:rgba(1,60,100,.45);border-radius:8px;padding:5px;display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0}.console-view .stat-grid .stat .k[data-v-7b6f0c39]{font-size:.058rem;color:#fff;white-space:nowrap}.console-view .stat-grid .stat .v[data-v-7b6f0c39]{font-size:.0625rem;font-weight:600;color:#fff;white-space:nowrap}.console-view .stat-grid .stat.accent .v[data-v-7b6f0c39]{color:#29c6ff}.console-view .stack[data-v-7b6f0c39]{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:6px}.console-view .stack .light-card[data-v-7b6f0c39]{flex:1 1 auto;min-height:0}.console-view .stack .kv[data-v-7b6f0c39]{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:5px}.console-view .stack .kv .lbl[data-v-7b6f0c39]{font-size:.057rem;color:rgba(1,170,253,.9);flex:0 1 auto;min-width:0;white-space:nowrap}.console-view .stack .kv .seg[data-v-7b6f0c39]{flex:1 1 auto;width:auto;min-width:0;max-width:76px}.console-view .stack .btn-rth[data-v-7b6f0c39]{flex:0 0 24px;width:100%;height:24px;border:0;border-radius:6px;background:linear-gradient(180deg,#f2994a,#e0662d);color:#fff;font-size:.06875rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;white-space:nowrap}.console-view .stack .btn-rth[data-v-7b6f0c39]:hover{background:linear-gradient(180deg,#f7a95f,#d9662a)}.console-view .stack .btn-rth[data-v-7b6f0c39]:disabled{background:hsla(0,0%,100%,.25);cursor:not-allowed}.console-view .stack .btn-rth[data-v-7b6f0c39]:disabled:hover{background:hsla(0,0%,100%,.25)}.mt-16px[data-v-7b6f0c39]{margin-top:auto}", ""]);
35897
+ // Exports
35898
+ module.exports = exports;
35899
+
35900
+
35876
35901
  /***/ }),
35877
35902
 
35878
35903
  /***/ "5852":
@@ -40121,17 +40146,6 @@ if(content.locals) module.exports = content.locals;
40121
40146
  var add = __webpack_require__("499e").default
40122
40147
  var update = add("04457c2c", content, true, {"sourceMap":false,"shadowMode":false});
40123
40148
 
40124
- /***/ }),
40125
-
40126
- /***/ "7364":
40127
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
40128
-
40129
- "use strict";
40130
- /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_UVA_scheduling_vue_vue_type_style_index_0_id_53ce1d80_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("bd92");
40131
- /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_UVA_scheduling_vue_vue_type_style_index_0_id_53ce1d80_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_6_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_UVA_scheduling_vue_vue_type_style_index_0_id_53ce1d80_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
40132
- /* unused harmony reexport * */
40133
-
40134
-
40135
40149
  /***/ }),
40136
40150
 
40137
40151
  /***/ "7387":
@@ -47653,20 +47667,6 @@ function ruleslanguage(hljs) {
47653
47667
  module.exports = ruleslanguage;
47654
47668
 
47655
47669
 
47656
- /***/ }),
47657
-
47658
- /***/ "8ae3":
47659
- /***/ (function(module, exports, __webpack_require__) {
47660
-
47661
- // Imports
47662
- var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
47663
- exports = ___CSS_LOADER_API_IMPORT___(false);
47664
- // Module
47665
- exports.push([module.i, ".uva-scheduling[data-v-53ce1d80]{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;border:1px solid rgba(1,170,253,.25);border-radius:.0104166rem;overflow:hidden;background:#062a46}.idle-view[data-v-53ce1d80]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0}.idle-view .idle-content[data-v-53ce1d80]{display:flex;flex-direction:column;align-items:center;gap:14px}.idle-view .idle-content svg[data-v-53ce1d80]{width:48px;height:48px}.idle-view .idle-content p[data-v-53ce1d80]{margin:0;font-size:.072916rem;color:#fff}.console-view[data-v-53ce1d80]{position:relative;flex:1 1 auto;display:flex;flex-direction:column;min-height:0;background:#062a46}.console-view .topbar[data-v-53ce1d80]{flex:0 0 auto;padding:10px 14px;background:linear-gradient(180deg,#1eace8,#0074d4);display:flex;align-items:center;justify-content:space-between}.console-view .topbar .topbar-left[data-v-53ce1d80]{display:flex;align-items:center;gap:10px;min-width:0}.console-view .topbar .topbar-left .brand-icon[data-v-53ce1d80]{width:24px;height:24px;flex:0 0 auto}.console-view .topbar .topbar-left .brand-icon svg[data-v-53ce1d80]{width:100%;height:100%}.console-view .topbar .topbar-left .title-col[data-v-53ce1d80]{min-width:0}.console-view .topbar .topbar-left .title-col h1[data-v-53ce1d80]{margin:0;font-size:.083333rem;font-weight:700;line-height:1.2;color:#fff}.console-view .topbar .topbar-left .title-col p[data-v-53ce1d80]{margin:0;font-size:.0625rem;color:hsla(0,0%,100%,.78);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console-view .topbar .topbar-right[data-v-53ce1d80]{display:flex;align-items:center;gap:12px;flex:0 0 auto}.console-view .topbar .topbar-right .clock[data-v-53ce1d80]{font-size:.0625rem;color:hsla(0,0%,100%,.78);white-space:nowrap}.console-view .topbar .topbar-right .live[data-v-53ce1d80]{display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;background:#e5484d}.console-view .topbar .topbar-right .live i[data-v-53ce1d80]{width:7px;height:7px;border-radius:50%;background:#fff}.console-view .topbar .topbar-right .live span[data-v-53ce1d80]{font-size:.0625rem;font-weight:700;color:#fff;letter-spacing:.04em}.console-view .body[data-v-53ce1d80]{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px;display:flex;flex-direction:column;gap:6px}.console-view .viewport[data-v-53ce1d80]{position:relative;flex:2 2 0;min-width:0;border:1px solid rgba(1,170,253,.25);border-radius:10px;overflow:hidden;background:#04172a}.console-view .viewport .feed[data-v-53ce1d80]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;background:#000}.console-view .viewport .feed-placeholder[data-v-53ce1d80]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:rgba(1,170,253,.6);font-size:.0625rem;gap:8px;pointer-events:none}.console-view .viewport .feed-placeholder svg[data-v-53ce1d80]{width:44px;height:44px}.console-view .viewport .hud[data-v-53ce1d80]{position:absolute;left:10px;top:10px;display:inline-flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;background:rgba(5,11,20,.7)}.console-view .viewport .hud .dot[data-v-53ce1d80]{width:8px;height:8px;border-radius:50%;background:#ff5c5c;box-shadow:0 0 8px rgba(255,92,92,.9)}.console-view .viewport .hud .rec[data-v-53ce1d80]{font-size:.0625rem;font-weight:500;color:#ff8a8a}.console-view .viewport .hud .sep[data-v-53ce1d80]{font-size:.0625rem;color:#3a5578}.console-view .viewport .hud .cam[data-v-53ce1d80]{font-size:.0625rem;color:#b8cce8}.console-view .console-row[data-v-53ce1d80]{flex:0 0 auto;display:flex;gap:8px;align-items:stretch}.console-view .console-row.row-top[data-v-53ce1d80]{flex:0 1 auto;height:50%;min-height:0}.console-view .console-row.row-bottom[data-v-53ce1d80]{flex:1 1 auto}.console-view .card[data-v-53ce1d80]{flex:1 1 0;min-width:0;background:rgba(3,44,76,.78);border:1px solid rgba(1,170,253,.35);border-radius:10px;padding:8px;display:flex;flex-direction:column}.console-view .card-title[data-v-53ce1d80]{display:flex;align-items:center;gap:6px;flex:0 0 auto;margin-bottom:5px}.console-view .card-title .bar[data-v-53ce1d80]{width:3px;height:14px;border-radius:2px;background:#29c6ff}.console-view .card-title span[data-v-53ce1d80]{font-size:.072916rem;font-weight:600;color:#fff;white-space:nowrap}.console-view .card-title .seg.mini[data-v-53ce1d80]{margin-left:auto;width:auto}.console-view .gimbal-body[data-v-53ce1d80]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:0}.console-view .joystick[data-v-53ce1d80]{width:96px;height:96px;flex:0 0 auto;align-self:center}.console-view .joystick .dir path[data-v-53ce1d80]{cursor:pointer;transition:opacity .12s}.console-view .joystick .dir path[data-v-53ce1d80]:hover{opacity:.72}.console-view .zoom-col[data-v-53ce1d80]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:8px}.console-view .zoom-col .zoom-head[data-v-53ce1d80]{display:flex;align-items:center;justify-content:space-between}.console-view .zoom-col .zoom-head .lbl[data-v-53ce1d80]{font-size:.057rem;color:#fff;white-space:nowrap}.console-view .zoom-col .zoom-head .val[data-v-53ce1d80]{font-size:.057rem;font-weight:500;color:#29c6ff;white-space:nowrap}.console-view .zoom-col .zoom-slider[data-v-53ce1d80]{display:flex;align-items:center;gap:8px}.console-view .zoom-col .zoom-slider .zoom-track[data-v-53ce1d80]{flex:1 1 auto;height:4px;border-radius:2px;background:hsla(0,0%,100%,.16);position:relative}.console-view .zoom-col .zoom-slider .zoom-track .zoom-fill[data-v-53ce1d80]{height:4px;border-radius:2px;background:#29c6ff;transition:width .18s}.console-view .zoom-col .zoom-slider .alt-track[data-v-53ce1d80]{flex:1 1 auto;text-align:center;font-size:.057rem;color:hsla(0,0%,100%,.5);white-space:nowrap}.console-view .zoom-col .chips[data-v-53ce1d80]{display:flex;gap:6px}.console-view .roundbtn[data-v-53ce1d80]{width:22px;height:22px;padding:0;flex:0 0 auto;background:rgba(1,60,100,.5);border:1px solid rgba(1,170,253,.5);border-radius:5px;display:flex;align-items:center;justify-content:center;cursor:pointer}.console-view .roundbtn[data-v-53ce1d80]:hover{background:rgba(1,170,253,.22)}.console-view .chip[data-v-53ce1d80]{flex:1 1 0;min-width:0;padding:4px;border:0;border-radius:6px;background:rgba(1,60,100,.5);color:#fff;font-size:.057rem;font-weight:500;cursor:pointer;white-space:nowrap}.console-view .chip[data-v-53ce1d80]:hover{background:rgba(1,170,253,.22)}.console-view .chip.on[data-v-53ce1d80]{background:#29c6ff;color:#04223c}.console-view .bc-input[data-v-53ce1d80]{flex:0 0 auto;height:.145833rem;width:100%;padding:0 .0625rem;border:1px solid rgba(1,170,253,.5);border-radius:.0104166rem;background:rgba(1,60,100,.35);font-size:.0625rem;color:#fff;outline:none;box-sizing:border-box}.console-view .bc-input[data-v-53ce1d80]::-moz-placeholder{color:hsla(0,0%,100%,.4)}.console-view .bc-input[data-v-53ce1d80]:-ms-input-placeholder{color:hsla(0,0%,100%,.4)}.console-view .bc-input[data-v-53ce1d80]::placeholder{color:hsla(0,0%,100%,.4)}.console-view .bc-input[data-v-53ce1d80]:focus{border-color:#29c6ff;box-shadow:0 0 0 3px rgba(41,198,255,.18)}.console-view .vol-row[data-v-53ce1d80]{display:flex;align-items:center;gap:8px}.console-view .vol-row .lbl[data-v-53ce1d80]{font-size:.057rem;color:#fff;flex:0 0 auto;white-space:nowrap}.console-view .vol-row .vol-track[data-v-53ce1d80]{flex:1 1 auto;height:4px;border-radius:2px;background:hsla(0,0%,100%,.16);position:relative;cursor:pointer}.console-view .vol-row .vol-track .vol-fill[data-v-53ce1d80]{height:4px;border-radius:2px;background:#29c6ff}.console-view .vol-row .val[data-v-53ce1d80]{font-size:.057rem;font-weight:500;color:#fff;width:30px;text-align:right;flex:0 0 auto;white-space:nowrap}.console-view .seg[data-v-53ce1d80]{display:flex;gap:2px;padding:2px;border-radius:6px;background:rgba(1,60,100,.5);flex:0 0 auto}.console-view .seg.wide[data-v-53ce1d80]{width:100%}.console-view .seg.fixed[data-v-53ce1d80]{width:76px}.console-view .seg button[data-v-53ce1d80]{flex:1 1 0;min-width:0;padding:2px 2px;border:0;border-radius:4px;background:transparent;color:#fff;font-size:.057rem;cursor:pointer;white-space:nowrap}.console-view .seg button[data-v-53ce1d80]:hover{color:#fff}.console-view .seg button.on[data-v-53ce1d80]{background:linear-gradient(180deg,#1eace8,#0074d4);color:#fff;font-weight:500}.console-view .seg button.on[data-v-53ce1d80]:hover{color:#fff}.console-view .seg.dim[data-v-53ce1d80]{opacity:.45;pointer-events:none}.console-view .bc-actions[data-v-53ce1d80]{display:flex;gap:8px;margin-top:auto}.console-view .btn[data-v-53ce1d80]{flex:1 1 0;min-width:0;height:24px;border-radius:6px;font-size:.0625rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}.console-view .btn.btn-play[data-v-53ce1d80]{border:0;background:linear-gradient(180deg,#1eace8,#0074d4);color:#fff}.console-view .btn.btn-play[data-v-53ce1d80]:hover{background:linear-gradient(180deg,#38bef6,#0c86e8)}.console-view .btn.btn-stop[data-v-53ce1d80]{background:rgba(1,60,100,.35);border:1px solid rgba(229,72,77,.6);color:#ff8a8a}.console-view .btn.btn-stop[data-v-53ce1d80]:hover{background:rgba(229,72,77,.15)}.console-view .stat-grid[data-v-53ce1d80]{flex:1 1 auto;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:4px}.console-view .stat-grid .stat[data-v-53ce1d80]{background:rgba(1,60,100,.45);border-radius:8px;padding:5px;display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0}.console-view .stat-grid .stat .k[data-v-53ce1d80]{font-size:.058rem;color:#fff;white-space:nowrap}.console-view .stat-grid .stat .v[data-v-53ce1d80]{font-size:.0625rem;font-weight:600;color:#fff;white-space:nowrap}.console-view .stat-grid .stat.accent .v[data-v-53ce1d80]{color:#29c6ff}.console-view .stack[data-v-53ce1d80]{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:6px}.console-view .stack .light-card[data-v-53ce1d80]{flex:1 1 auto;min-height:0}.console-view .stack .kv[data-v-53ce1d80]{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:5px}.console-view .stack .kv .lbl[data-v-53ce1d80]{font-size:.057rem;color:rgba(1,170,253,.9);flex:0 1 auto;min-width:0;white-space:nowrap}.console-view .stack .kv .seg[data-v-53ce1d80]{flex:1 1 auto;width:auto;min-width:0;max-width:76px}.console-view .stack .btn-rth[data-v-53ce1d80]{flex:0 0 24px;width:100%;height:24px;border:0;border-radius:6px;background:linear-gradient(180deg,#f2994a,#e0662d);color:#fff;font-size:.06875rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;white-space:nowrap}.console-view .stack .btn-rth[data-v-53ce1d80]:hover{background:linear-gradient(180deg,#f7a95f,#d9662a)}.console-view .stack .btn-rth[data-v-53ce1d80]:disabled{background:hsla(0,0%,100%,.25);cursor:not-allowed}.console-view .stack .btn-rth[data-v-53ce1d80]:disabled:hover{background:hsla(0,0%,100%,.25)}.mt-16px[data-v-53ce1d80]{margin-top:auto}", ""]);
47666
- // Exports
47667
- module.exports = exports;
47668
-
47669
-
47670
47670
  /***/ }),
47671
47671
 
47672
47672
  /***/ "8bbb":
@@ -54366,6 +54366,22 @@ function rsl(hljs) {
54366
54366
  module.exports = rsl;
54367
54367
 
54368
54368
 
54369
+ /***/ }),
54370
+
54371
+ /***/ "a0e1":
54372
+ /***/ (function(module, exports, __webpack_require__) {
54373
+
54374
+ // style-loader: Adds some css to the DOM by adding a <style> tag
54375
+
54376
+ // load the styles
54377
+ var content = __webpack_require__("5848");
54378
+ if(content.__esModule) content = content.default;
54379
+ if(typeof content === 'string') content = [[module.i, content, '']];
54380
+ if(content.locals) module.exports = content.locals;
54381
+ // add the styles to the DOM
54382
+ var add = __webpack_require__("499e").default
54383
+ var update = add("d776cf30", content, true, {"sourceMap":false,"shadowMode":false});
54384
+
54369
54385
  /***/ }),
54370
54386
 
54371
54387
  /***/ "a14e":
@@ -161273,22 +161289,6 @@ function stylus(hljs) {
161273
161289
  module.exports = stylus;
161274
161290
 
161275
161291
 
161276
- /***/ }),
161277
-
161278
- /***/ "bd92":
161279
- /***/ (function(module, exports, __webpack_require__) {
161280
-
161281
- // style-loader: Adds some css to the DOM by adding a <style> tag
161282
-
161283
- // load the styles
161284
- var content = __webpack_require__("8ae3");
161285
- if(content.__esModule) content = content.default;
161286
- if(typeof content === 'string') content = [[module.i, content, '']];
161287
- if(content.locals) module.exports = content.locals;
161288
- // add the styles to the DOM
161289
- var add = __webpack_require__("499e").default
161290
- var update = add("0dca79d1", content, true, {"sourceMap":false,"shadowMode":false});
161291
-
161292
161292
  /***/ }),
161293
161293
 
161294
161294
  /***/ "bde7":
@@ -225293,15 +225293,15 @@ var trafficEventLayer_component = Object(componentNormalizer["a" /* default */])
225293
225293
  )
225294
225294
 
225295
225295
  /* harmony default export */ var trafficEventLayer = (trafficEventLayer_component.exports);
225296
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"dab12980-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/gis-map/src/component/eventLayer/perceptionEventLayer.vue?vue&type=template&id=706dc323&
225297
- var perceptionEventLayervue_type_template_id_706dc323_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.loading),expression:"loading"}],staticClass:"perceptionEventLayer",class:{ 'perceptionEventLayer--wide': _vm.showUavPanel },attrs:{"element-loading-background":"rgba(4, 27, 51, 0.5)"}},[_c('div',{staticClass:"discontent"},[_c('div',{staticClass:"content_l"},[_c('div',{staticClass:"topCon"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.videoActive),expression:"videoActive"}],staticClass:"btnsCarousel"},[_c('el-button',{staticClass:"leftCarousel",attrs:{"disabled":_vm.leftCarouselBtn,"icon":"el-icon-caret-left","circle":"","size":"mini"},on:{"click":function($event){return _vm.switchVideo('left')}}}),_c('el-button',{staticClass:"rightCarousel",attrs:{"disabled":_vm.rightCarouselBtn,"icon":"el-icon-caret-right","circle":"","size":"mini"},on:{"click":function($event){return _vm.switchVideo('right')}}})],1),_c('div',{staticClass:"videoBox"},[_c('i',{directives:[{name:"show",rawName:"v-show",value:(_vm.videoActive),expression:"videoActive"}],staticClass:"el-icon-full-screen",class:_vm.fullScreenZoom,attrs:{"title":_vm.fullscreen ? '退出全屏' : '全屏'},on:{"click":function($event){return _vm.handleFullScreen($event)}}}),_c('video',{directives:[{name:"show",rawName:"v-show",value:(_vm.videoActive),expression:"videoActive"}],ref:"videoElement",staticStyle:{"object-fit":"fill"},attrs:{"autoplay":"","width":"100%","height":"100%","id":"videoElement"}})]),_c('img',{directives:[{name:"show",rawName:"v-show",value:(_vm.imgActive),expression:"imgActive"}],staticClass:"xcImg",staticStyle:{"cursor":"pointer"},attrs:{"src":_vm.imgUrl,"alt":""},on:{"click":function($event){return _vm.imgx2($event)}}}),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.imgVideoActive),expression:"imgVideoActive"}],staticClass:"videoBox"},[_c('i',{directives:[{name:"show",rawName:"v-show",value:(_vm.imgVideoActive),expression:"imgVideoActive"}],staticClass:"el-icon-full-screen",class:_vm.fullScreenZoom2,attrs:{"title":_vm.fullscreen ? '退出全屏' : '全屏'},on:{"click":function($event){return _vm.handleFullScreen($event)}}}),_c('video',{directives:[{name:"show",rawName:"v-show",value:(_vm.imgVideoActive),expression:"imgVideoActive"}],staticStyle:{"object-fit":"fill"},attrs:{"autoplay":"","loop":"","width":"100%","height":"100%","src":_vm.imgVideoUrl}})]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.popupAttr.dataSource == 2),expression:"popupAttr.dataSource == 2"}],staticClass:"btns"},[_c('div',{class:_vm.btnImgActive,on:{"click":function($event){return _vm.showActive('video')}}},[_vm._v("视频")]),_c('div',{class:_vm.btnVideoActive,on:{"click":function($event){return _vm.showActive('img')}}},[_vm._v("图像")])])]),_c('div',{staticClass:"dmcll"},[(_vm.echartsIsShow)?_c('div',{staticClass:"noInfoText"},[_vm._v("断面车流量暂无数据")]):_vm._e(),_c('div',{ref:"etCharts",staticStyle:{"height":"1.2rem","width":"100%"}})])]),_c('div',{staticClass:"content_r"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.popupAttr.eventType == '设施监测预警'),expression:"popupAttr.eventType == '设施监测预警'"}],staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("道路名称:")]),_c('span',[_vm._v(_vm._s(_vm.popupAttr.roadName))])]),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("发生时间:")]),_c('span',{staticStyle:{"padding-top":"0.0104166rem"}},[_vm._v(_vm._s(_vm.popupAttr.incidentTime))])]),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("告警时间:")]),_c('span',[_vm._v(_vm._s(_vm.popupAttr.occurTime))])]),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("事件地点:")]),_c('span',{staticStyle:{"padding-top":"0.0104166rem"}},[_vm._v(_vm._s(_vm.popupAttr.location))]),_vm._v(" "),(_vm.popupAttr.eventType !== '大雾')?_c('span',{staticStyle:{"padding-top":"0.0104166rem"}},[_vm._v(_vm._s(_vm.popupAttr.stakeNumber))]):_vm._e(),_vm._v(" "),(_vm.popupAttr.eventType === '大雾')?_c('span',{staticStyle:{"padding-top":"0.0104166rem"}},[_vm._v(_vm._s(_vm.popupAttr.beginPile)+" ~")]):_vm._e(),_vm._v(" "),(_vm.popupAttr.eventType === '大雾')?_c('span',{staticStyle:{"padding-top":"0.0104166rem"}},[_vm._v(_vm._s(_vm.popupAttr.endPile))]):_vm._e(),_vm._v(" "),(_vm.popupAttr.eventType !== '大雾')?_c('span',[_vm._v(_vm._s(_vm.eventDirection))]):_vm._e()]),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("事件类型:")]),_c('el-select',{staticStyle:{"width":"70%"},on:{"change":_vm.mainCodeChange},model:{value:(_vm.popupAttr.trafficMainCode),callback:function ($$v) {_vm.$set(_vm.popupAttr, "trafficMainCode", $$v)},expression:"popupAttr.trafficMainCode"}},_vm._l((_vm.eventTypeList),function(item,i){return _c('el-option',{key:i,attrs:{"label":item.trafficMainName,"value":item.trafficMainCode}})}),1)],1),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("细分类别:")]),_c('el-select',{staticStyle:{"width":"70%"},on:{"change":_vm.subCodeChange},model:{value:(_vm.popupAttr.trafficSubCode),callback:function ($$v) {_vm.$set(_vm.popupAttr, "trafficSubCode", $$v)},expression:"popupAttr.trafficSubCode"}},_vm._l((_vm.subEventTypeList),function(item,i){return _c('el-option',{key:i,attrs:{"label":item.trafficSubName,"value":item.trafficSubCode}})}),1)],1),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("事件来源:")]),_c('span',[_vm._v(_vm._s(_vm.popupAttr.eventSource))])]),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("事件描述:")]),_c('el-input',{attrs:{"type":"textarea","rows":4},on:{"blur":_vm.updataEvent},model:{value:(_vm.eventForm.eventDis),callback:function ($$v) {_vm.$set(_vm.eventForm, "eventDis", $$v)},expression:"eventForm.eventDis"}})],1),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("影响车道:")]),_c('el-checkbox-group',{attrs:{"text-color":"#fff !important"},on:{"input":_vm.updataEvent},model:{value:(_vm.eventForm.enentCd),callback:function ($$v) {_vm.$set(_vm.eventForm, "enentCd", $$v)},expression:"eventForm.enentCd"}},[_c('el-checkbox-button',{key:"1",attrs:{"label":"1"}},[_vm._v("1")]),_c('el-checkbox-button',{key:"2",attrs:{"label":"2"}},[_vm._v("2")]),_c('el-checkbox-button',{key:"4",attrs:{"label":"4"}},[_vm._v("3")]),_c('el-checkbox-button',{key:"5",attrs:{"label":"5"}},[_vm._v("4")]),_c('el-checkbox-button',{key:"3",attrs:{"label":"3"}},[_vm._v("应急")])],1)],1),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("告警时长:")]),_c('span',[_vm._v(_vm._s(_vm.duration))])]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.popupAttr.eventType !== '设施监测预警'),expression:"popupAttr.eventType !== '设施监测预警'"}],staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("天气情况:")]),_c('span',[_vm._v(_vm._s(_vm.weatherDescription))])]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.perceptionEventReleaseShow),expression:"perceptionEventReleaseShow"}],staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("解除原因:")]),_c('el-radio-group',{staticStyle:{"width":"1.3rem"},model:{value:(_vm.popupAttr.releaseReason),callback:function ($$v) {_vm.$set(_vm.popupAttr, "releaseReason", $$v)},expression:"popupAttr.releaseReason"}},[_c('el-row',[_c('el-col',{attrs:{"span":12}},[_c('el-radio',{attrs:{"label":1}},[_vm._v("误报解除")])],1),_c('el-col',{attrs:{"span":12}},[_c('el-radio',{attrs:{"label":2}},[_vm._v("事件已结束")])],1),_c('el-col',{attrs:{"span":12}},[_c('el-radio',{attrs:{"label":3}},[_vm._v("无需处理事件")])],1)],1)],1)],1),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.perceptionEventReleaseShow),expression:"perceptionEventReleaseShow"}],staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("解除描述:")]),_c('el-input',{attrs:{"type":"textarea","rows":2},on:{"blur":_vm.updataEvent},model:{value:(_vm.popupAttr.reasonDesc),callback:function ($$v) {_vm.$set(_vm.popupAttr, "reasonDesc", $$v)},expression:"popupAttr.reasonDesc"}})],1)]),_c('div',{staticStyle:{"clear":"both"}}),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.shouldShow),expression:"shouldShow"}],staticClass:"content_b"},[_c('div',{staticClass:"btn",on:{"click":_vm.schedulingSettings}},[_vm._v("事件确认")]),_c('div',{staticClass:"btn btn_c",on:{"click":_vm.terminationOfAlarm}},[_vm._v("事件解除")]),(
225296
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"dab12980-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/gis-map/src/component/eventLayer/perceptionEventLayer.vue?vue&type=template&id=dbb3567c&
225297
+ var perceptionEventLayervue_type_template_id_dbb3567c_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.loading),expression:"loading"}],staticClass:"perceptionEventLayer",class:{ 'perceptionEventLayer--wide': _vm.showUavPanel },attrs:{"element-loading-background":"rgba(4, 27, 51, 0.5)"}},[_c('div',{staticClass:"discontent"},[_c('div',{staticClass:"content_l"},[_c('div',{staticClass:"topCon"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.videoActive),expression:"videoActive"}],staticClass:"btnsCarousel"},[_c('el-button',{staticClass:"leftCarousel",attrs:{"disabled":_vm.leftCarouselBtn,"icon":"el-icon-caret-left","circle":"","size":"mini"},on:{"click":function($event){return _vm.switchVideo('left')}}}),_c('el-button',{staticClass:"rightCarousel",attrs:{"disabled":_vm.rightCarouselBtn,"icon":"el-icon-caret-right","circle":"","size":"mini"},on:{"click":function($event){return _vm.switchVideo('right')}}})],1),_c('div',{staticClass:"videoBox"},[_c('i',{directives:[{name:"show",rawName:"v-show",value:(_vm.videoActive),expression:"videoActive"}],staticClass:"el-icon-full-screen",class:_vm.fullScreenZoom,attrs:{"title":_vm.fullscreen ? '退出全屏' : '全屏'},on:{"click":function($event){return _vm.handleFullScreen($event)}}}),_c('video',{directives:[{name:"show",rawName:"v-show",value:(_vm.videoActive),expression:"videoActive"}],ref:"videoElement",staticStyle:{"object-fit":"fill"},attrs:{"autoplay":"","width":"100%","height":"100%","id":"videoElement"}})]),_c('img',{directives:[{name:"show",rawName:"v-show",value:(_vm.imgActive),expression:"imgActive"}],staticClass:"xcImg",staticStyle:{"cursor":"pointer"},attrs:{"src":_vm.imgUrl,"alt":""},on:{"click":function($event){return _vm.imgx2($event)}}}),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.imgVideoActive),expression:"imgVideoActive"}],staticClass:"videoBox"},[_c('i',{directives:[{name:"show",rawName:"v-show",value:(_vm.imgVideoActive),expression:"imgVideoActive"}],staticClass:"el-icon-full-screen",class:_vm.fullScreenZoom2,attrs:{"title":_vm.fullscreen ? '退出全屏' : '全屏'},on:{"click":function($event){return _vm.handleFullScreen($event)}}}),_c('video',{directives:[{name:"show",rawName:"v-show",value:(_vm.imgVideoActive),expression:"imgVideoActive"}],staticStyle:{"object-fit":"fill"},attrs:{"autoplay":"","loop":"","width":"100%","height":"100%","src":_vm.imgVideoUrl}})]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.popupAttr.dataSource == 2),expression:"popupAttr.dataSource == 2"}],staticClass:"btns"},[_c('div',{class:_vm.btnImgActive,on:{"click":function($event){return _vm.showActive('video')}}},[_vm._v("视频")]),_c('div',{class:_vm.btnVideoActive,on:{"click":function($event){return _vm.showActive('img')}}},[_vm._v("图像")])])]),_c('div',{staticClass:"dmcll"},[(_vm.echartsIsShow)?_c('div',{staticClass:"noInfoText"},[_vm._v("断面车流量暂无数据")]):_vm._e(),_c('div',{ref:"etCharts",staticStyle:{"height":"1.2rem","width":"100%"}})])]),_c('div',{staticClass:"content_r"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.popupAttr.eventType == '设施监测预警'),expression:"popupAttr.eventType == '设施监测预警'"}],staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("道路名称:")]),_c('span',[_vm._v(_vm._s(_vm.popupAttr.roadName))])]),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("发生时间:")]),_c('span',{staticStyle:{"padding-top":"0.0104166rem"}},[_vm._v(_vm._s(_vm.popupAttr.incidentTime))])]),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("告警时间:")]),_c('span',[_vm._v(_vm._s(_vm.popupAttr.occurTime))])]),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("事件地点:")]),_c('span',{staticStyle:{"padding-top":"0.0104166rem"}},[_vm._v(_vm._s(_vm.popupAttr.location))]),_vm._v(" "),(_vm.popupAttr.eventType !== '大雾')?_c('span',{staticStyle:{"padding-top":"0.0104166rem"}},[_vm._v(_vm._s(_vm.popupAttr.stakeNumber))]):_vm._e(),_vm._v(" "),(_vm.popupAttr.eventType === '大雾')?_c('span',{staticStyle:{"padding-top":"0.0104166rem"}},[_vm._v(_vm._s(_vm.popupAttr.beginPile)+" ~")]):_vm._e(),_vm._v(" "),(_vm.popupAttr.eventType === '大雾')?_c('span',{staticStyle:{"padding-top":"0.0104166rem"}},[_vm._v(_vm._s(_vm.popupAttr.endPile))]):_vm._e(),_vm._v(" "),(_vm.popupAttr.eventType !== '大雾')?_c('span',[_vm._v(_vm._s(_vm.eventDirection))]):_vm._e()]),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("事件类型:")]),_c('el-select',{staticStyle:{"width":"70%"},on:{"change":_vm.mainCodeChange},model:{value:(_vm.popupAttr.trafficMainCode),callback:function ($$v) {_vm.$set(_vm.popupAttr, "trafficMainCode", $$v)},expression:"popupAttr.trafficMainCode"}},_vm._l((_vm.eventTypeList),function(item,i){return _c('el-option',{key:i,attrs:{"label":item.trafficMainName,"value":item.trafficMainCode}})}),1)],1),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("细分类别:")]),_c('el-select',{staticStyle:{"width":"70%"},on:{"change":_vm.subCodeChange},model:{value:(_vm.popupAttr.trafficSubCode),callback:function ($$v) {_vm.$set(_vm.popupAttr, "trafficSubCode", $$v)},expression:"popupAttr.trafficSubCode"}},_vm._l((_vm.subEventTypeList),function(item,i){return _c('el-option',{key:i,attrs:{"label":item.trafficSubName,"value":item.trafficSubCode}})}),1)],1),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("事件来源:")]),_c('span',[_vm._v(_vm._s(_vm.popupAttr.eventSource))])]),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("事件描述:")]),_c('el-input',{attrs:{"type":"textarea","rows":4},on:{"blur":_vm.updataEvent},model:{value:(_vm.eventForm.eventDis),callback:function ($$v) {_vm.$set(_vm.eventForm, "eventDis", $$v)},expression:"eventForm.eventDis"}})],1),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("影响车道:")]),_c('el-checkbox-group',{attrs:{"text-color":"#fff !important"},on:{"input":_vm.updataEvent},model:{value:(_vm.eventForm.enentCd),callback:function ($$v) {_vm.$set(_vm.eventForm, "enentCd", $$v)},expression:"eventForm.enentCd"}},[_c('el-checkbox-button',{key:"1",attrs:{"label":"1"}},[_vm._v("1")]),_c('el-checkbox-button',{key:"2",attrs:{"label":"2"}},[_vm._v("2")]),_c('el-checkbox-button',{key:"4",attrs:{"label":"4"}},[_vm._v("3")]),_c('el-checkbox-button',{key:"5",attrs:{"label":"5"}},[_vm._v("4")]),_c('el-checkbox-button',{key:"3",attrs:{"label":"3"}},[_vm._v("应急")])],1)],1),_c('div',{staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("告警时长:")]),_c('span',[_vm._v(_vm._s(_vm.duration))])]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.popupAttr.eventType !== '设施监测预警'),expression:"popupAttr.eventType !== '设施监测预警'"}],staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("天气情况:")]),_c('span',[_vm._v(_vm._s(_vm.weatherDescription))])]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.perceptionEventReleaseShow),expression:"perceptionEventReleaseShow"}],staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("解除原因:")]),_c('el-radio-group',{staticStyle:{"width":"1.3rem"},model:{value:(_vm.popupAttr.releaseReason),callback:function ($$v) {_vm.$set(_vm.popupAttr, "releaseReason", $$v)},expression:"popupAttr.releaseReason"}},[_c('el-row',[_c('el-col',{attrs:{"span":12}},[_c('el-radio',{attrs:{"label":1}},[_vm._v("误报解除")])],1),_c('el-col',{attrs:{"span":12}},[_c('el-radio',{attrs:{"label":2}},[_vm._v("事件已结束")])],1),_c('el-col',{attrs:{"span":12}},[_c('el-radio',{attrs:{"label":3}},[_vm._v("无需处理事件")])],1)],1)],1)],1),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.perceptionEventReleaseShow),expression:"perceptionEventReleaseShow"}],staticClass:"item"},[_c('span',{staticClass:"lable"},[_vm._v("解除描述:")]),_c('el-input',{attrs:{"type":"textarea","rows":2},on:{"blur":_vm.updataEvent},model:{value:(_vm.popupAttr.reasonDesc),callback:function ($$v) {_vm.$set(_vm.popupAttr, "reasonDesc", $$v)},expression:"popupAttr.reasonDesc"}})],1)]),_c('div',{staticStyle:{"clear":"both"}}),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.shouldShow),expression:"shouldShow"}],staticClass:"content_b"},[_c('div',{staticClass:"btn",on:{"click":_vm.schedulingSettings}},[_vm._v("事件确认")]),_c('div',{staticClass:"btn btn_c",on:{"click":_vm.terminationOfAlarm}},[_vm._v("事件解除")]),(
225298
225298
  _vm.popupAttr.eventTypeCode === 53 ||
225299
225299
  _vm.popupAttr.eventTypeCode === '53'
225300
225300
  )?_c('div',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.dispatching),expression:"dispatching"}],staticClass:"btn",class:{ btn_disabled: !_vm.hasReachableDrones },attrs:{"title":_vm.hasReachableDrones ? '无人机调度' : '暂无可调度的无人机'},on:{"click":_vm.UAVControl}},[_vm._v(" "+_vm._s(_vm.uavBtnText)+" ")]):_vm._e()])]),_c('transition',{attrs:{"name":"uav-panel-fade"}},[(_vm.showUavPanel)?_c('div',{staticClass:"uavDispatchPanel"},[_c('div',{staticClass:"uavDispatchPanel__body"},[_c('UVAScheduling',{attrs:{"eventData":_vm.uavEventData,"uavId":_vm.dispatchedUavId},on:{"return-home":_vm.onReturnHome}})],1)]):_vm._e()])],1)}
225301
- var perceptionEventLayervue_type_template_id_706dc323_staticRenderFns = []
225301
+ var perceptionEventLayervue_type_template_id_dbb3567c_staticRenderFns = []
225302
225302
 
225303
225303
 
225304
- // CONCATENATED MODULE: ./packages/gis-map/src/component/eventLayer/perceptionEventLayer.vue?vue&type=template&id=706dc323&
225304
+ // CONCATENATED MODULE: ./packages/gis-map/src/component/eventLayer/perceptionEventLayer.vue?vue&type=template&id=dbb3567c&
225305
225305
 
225306
225306
  // CONCATENATED MODULE: ./packages/gis-map/src/component/api/wurenji.js
225307
225307
  /* ==================== 无人机调度接口 ==================== */
@@ -225478,29 +225478,11 @@ function droneRecordUpdate (data) {
225478
225478
  * 因此通过 info.id 是否存在来过滤无效分组。
225479
225479
  */
225480
225480
 
225481
- /**
225482
- * 开发调试用写死数据
225483
- *
225484
- * 联调期间组件内暂时读不到 localStorage,先写死操作人信息兜底。
225485
- * 对应本地存储键 sdhsg_its_app-1.6.12 中 sys.user.ceshi.user.info 的关键字段。
225486
- * TODO: 功能全部完成、能正常读取 localStorage 后,删除本常量及 readUserInfo 中的合并逻辑
225487
- */
225488
- const DEBUG_USER_INFO = {
225489
- id: '1419914914685333506',
225490
- name: '测试人员',
225491
- username: 'ceshi',
225492
- realName: '测试人员',
225493
- deptId: '20241129104319181-9C59-2C3C1648C',
225494
- deptName: '智慧管理中心',
225495
- deptFullName:
225496
- '山东高速集团/集团总部/高速公路运营公司(高速公路运营中心)/智慧管理中心'
225497
- }
225498
-
225499
225481
  const USER_STORE_KEY = 'sdhsg_its_app-1.6.12'
225500
225482
  const USER_LOGIN_KEY = 'sdhsg_its_app-1.6.12-login'
225501
225483
 
225502
225484
  /**
225503
- * 从 localStorage 解析真实用户信息(不包含调试写死值)
225485
+ * 从 localStorage 解析当前登录用户信息
225504
225486
  * @returns {Object} 用户信息对象,取不到时返回空对象
225505
225487
  */
225506
225488
  function readStoreUserInfo() {
@@ -225547,22 +225529,22 @@ function readStoreUserInfo() {
225547
225529
  }
225548
225530
 
225549
225531
  /**
225550
- * 读取当前登录用户信息
225551
- * 真实数据优先;读不到时用调试写死值兜底(保证联调期间各接口能带上操作人信息)
225532
+ * 读取当前登录用户信息(正式环境:只取 localStorage 中的真实登录态)
225533
+ * 读不到时返回空对象,调用方按需判空
225552
225534
  * @returns {Object} 用户信息对象
225553
225535
  */
225554
225536
  function readUserInfo() {
225555
- return Object.assign({}, DEBUG_USER_INFO, readStoreUserInfo())
225537
+ return readStoreUserInfo()
225556
225538
  }
225557
225539
 
225558
225540
  /* harmony default export */ var userInfo = (readUserInfo);
225559
225541
 
225560
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"dab12980-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=template&id=53ce1d80&scoped=true&
225561
- var UVA_schedulingvue_type_template_id_53ce1d80_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"uva-scheduling"},[_c('div',{staticClass:"console-view"},[_c('div',{staticClass:"body"},[_c('div',{staticClass:"console-row row-top"},[_c('div',{staticClass:"viewport"},[_c('video',{ref:"droneVideo",staticClass:"feed",attrs:{"muted":"","controls":"","autoplay":"","playsinline":""},domProps:{"muted":true}}),(!_vm.videoUrl)?_c('div',{staticClass:"feed-placeholder"},[_c('svg',{attrs:{"viewBox":"0 0 48 48","fill":"none"}},[_c('rect',{attrs:{"x":"6","y":"12","width":"36","height":"24","rx":"3","stroke":"rgba(1, 170, 253, 0.45)","stroke-width":"2"}}),_c('path',{attrs:{"d":"M20 18l10 6-10 6z","fill":"rgba(1, 170, 253, 0.45)"}})]),_c('span',[_vm._v("暂无视频")])]):_vm._e(),_vm._m(0)]),_c('div',{staticClass:"card gimbal-card"},[_c('div',{staticClass:"card-title"},[_c('i',{staticClass:"bar"}),_c('span',[_vm._v("云台控制")]),(_vm.showFlightControl)?_c('div',{staticClass:"seg fixed mini"},[_c('button',{class:{ on: _vm.gimbalMode === 'gimbal' },on:{"click":function($event){_vm.gimbalMode = 'gimbal'}}},[_vm._v("云台")]),_c('button',{class:{ on: _vm.gimbalMode === 'flight' },on:{"click":function($event){_vm.gimbalMode = 'flight'}}},[_vm._v("飞行")])]):_vm._e()]),_c('div',{staticClass:"gimbal-body"},[_c('svg',{staticClass:"joystick",attrs:{"viewBox":"0 0 132 132","fill":"none"}},[_c('circle',{attrs:{"cx":"66","cy":"66","r":"64","fill":"#0a2c47","stroke":"rgba(1, 170, 253, 0.5)","stroke-width":"2"}}),_c('circle',{attrs:{"cx":"66","cy":"66","r":"44","fill":"#062a46"}}),_c('g',{staticClass:"dir"},[_c('path',{staticClass:"d-up",attrs:{"d":"M66 30l12 13H54z","fill":"#29c6ff"},on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.gimbalControl('w') : _vm.flightControl('w')}}}),_c('path',{staticClass:"d-down",attrs:{"d":"M66 102l12-13H54z","fill":"#29c6ff"},on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.gimbalControl('s') : _vm.flightControl('s')}}}),_c('path',{staticClass:"d-left",attrs:{"d":"M30 66l13-12v24z","fill":"#29c6ff"},on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.gimbalControl('a') : _vm.flightControl('a')}}}),_c('path',{staticClass:"d-right",attrs:{"d":"M102 66l-13-12v24z","fill":"#29c6ff"},on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.gimbalControl('d') : _vm.flightControl('d')}}})]),_c('circle',{attrs:{"cx":"66","cy":"66","r":"10","fill":"#fff","stroke":"#29c6ff","stroke-width":"2"}})]),_c('div',{staticClass:"zoom-col"},[_c('div',{staticClass:"zoom-head"},[_c('span',{staticClass:"lbl"},[_vm._v(_vm._s(_vm.gimbalMode === 'gimbal' ? '变焦' : '升降'))]),_c('span',{staticClass:"val"},[_vm._v(_vm._s(_vm.gimbalMode === 'gimbal' ? _vm.zoomLevel.toFixed(1) + 'x' : 'ALT'))])]),_c('div',{staticClass:"zoom-slider"},[_c('button',{staticClass:"roundbtn",on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.zoomControl('zoom_x') : _vm.flightControl('down')}}},[_c('svg',{attrs:{"width":"30","height":"30","viewBox":"0 0 30 30","fill":"none"}},[_c('path',{attrs:{"d":"M10 15h10","stroke":"#9cc9e8","stroke-width":"2","stroke-linecap":"round"}})])]),(_vm.gimbalMode === 'gimbal')?_c('div',{staticClass:"zoom-track"},[_c('div',{staticClass:"zoom-fill",style:({ width: _vm.zoomPct + '%' })})]):_c('div',{staticClass:"alt-track"},[_c('span',[_vm._v("升 / 降")])]),_c('button',{staticClass:"roundbtn",on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.zoomControl('zoom_z') : _vm.flightControl('up')}}},[_c('svg',{attrs:{"width":"30","height":"30","viewBox":"0 0 30 30","fill":"none"}},[_c('path',{attrs:{"d":"M10 15h10M15 10v10","stroke":"#9cc9e8","stroke-width":"2","stroke-linecap":"round"}})])])])])])])]),_c('div',{staticClass:"console-row row-bottom"},[_c('div',{staticClass:"card status-card"},[_vm._m(1),_c('div',{staticClass:"stat-grid"},[_c('div',{staticClass:"stat accent"},[_c('span',{staticClass:"k"},[_vm._v("剩余电量")]),_c('span',{staticClass:"v"},[_vm._v(_vm._s(_vm.batteryText))])]),_c('div',{staticClass:"stat"},[_c('span',{staticClass:"k"},[_vm._v("飞行高度")]),_c('span',{staticClass:"v"},[_vm._v(_vm._s(_vm.heightText))])]),_c('div',{staticClass:"stat"},[_c('span',{staticClass:"k"},[_vm._v("飞行速度")]),_c('span',{staticClass:"v"},[_vm._v(_vm._s(_vm.speedText))])]),_c('div',{staticClass:"stat"},[_c('span',{staticClass:"k"},[_vm._v("风力")]),_c('span',{staticClass:"v"},[_vm._v(_vm._s(_vm.windText))])])])]),_c('div',{staticClass:"card broadcast-card"},[_vm._m(2),_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.broadcastText),expression:"broadcastText"}],staticClass:"bc-input",attrs:{"type":"text","placeholder":"输入广播内容…","aria-label":"广播内容"},domProps:{"value":(_vm.broadcastText)},on:{"input":function($event){if($event.target.composing){ return; }_vm.broadcastText=$event.target.value}}}),_c('div',{staticClass:"vol-row mt-16px"},[_c('span',{staticClass:"lbl"},[_vm._v("音量")]),_c('div',{staticClass:"vol-track",on:{"click":_vm.volFromEvent}},[_c('div',{staticClass:"vol-fill",style:({ width: _vm.broadcastVolume + '%' })})]),_c('span',{staticClass:"val"},[_vm._v(_vm._s(_vm.broadcastVolume)+"%")])]),_c('div',{staticClass:"seg wide mt-16px"},[_c('button',{class:{ on: _vm.broadcastMode === 1 },on:{"click":function($event){_vm.broadcastMode = 1}}},[_vm._v("单次")]),_c('button',{class:{ on: _vm.broadcastMode === 2 },on:{"click":function($event){_vm.broadcastMode = 2}}},[_vm._v("循环")])]),_c('div',{staticClass:"bc-actions"},[_c('button',{staticClass:"btn btn-play",on:{"click":_vm.broadcastToggle}},[_c('svg',{attrs:{"width":"12","height":"12","viewBox":"0 0 12 12","fill":"none"}},[(!_vm.broadcastPlaying)?_c('path',{attrs:{"d":"M3 1.5l7 4.5-7 4.5z","fill":"#fff"}}):_c('path',{attrs:{"d":"M2.5 1.5h2.4v9H2.5zM7.1 1.5h2.4v9H7.1z","fill":"#fff"}})]),_c('span',[_vm._v(_vm._s(_vm.broadcastPlaying ? '暂停' : '播放'))])]),_c('button',{staticClass:"btn btn-stop",on:{"click":_vm.broadcastStop}},[_vm._v("停止")])])]),_c('div',{staticClass:"stack"},[_c('div',{staticClass:"card light-card"},[_c('div',{staticClass:"card-title"},[_c('svg',{attrs:{"width":"14","height":"14","viewBox":"0 0 14 14","fill":"none"}},[_c('path',{attrs:{"d":"M7 1v2M7 11v2M1 7h2M11 7h2M2.8 2.8l1.4 1.4M9.8 9.8l1.4 1.4M11.2 2.8L9.8 4.2M4.2 9.8L2.8 11.2","stroke":"#29c6ff","stroke-width":"1.4","stroke-linecap":"round"}}),_c('circle',{attrs:{"cx":"7","cy":"7","r":"2.4","fill":"#29c6ff"}})]),_c('span',[_vm._v("爆闪灯控制")])]),_c('div',{staticClass:"kv"},[_c('div',{staticClass:"lbl"},[_vm._v("控制模式")]),_c('div',{staticClass:"seg fixed",class:{ dim: _vm.lightPower === 2 }},[_c('button',{class:{ on: _vm.lightMode === 1 },on:{"click":function($event){return _vm.setLightMode(1)}}},[_vm._v("常亮")]),_c('button',{class:{ on: _vm.lightMode === 2 },on:{"click":function($event){return _vm.setLightMode(2)}}},[_vm._v("爆闪")])])]),_c('div',{staticClass:"kv"},[_c('div',{staticClass:"lbl"},[_vm._v("控制方式")]),_c('div',{staticClass:"seg fixed"},[_c('button',{class:{ on: _vm.lightPower === 1 },on:{"click":function($event){return _vm.setLightPower(1)}}},[_vm._v("开启")]),_c('button',{class:{ on: _vm.lightPower === 2 },on:{"click":function($event){return _vm.setLightPower(2)}}},[_vm._v("关闭")])])])]),_c('el-popconfirm',{attrs:{"title":"确定要让无人机返航吗?","confirm-button-text":"确定","cancel-button-text":"取消","icon":"el-icon-warning","icon-color":"#E5484D"},on:{"confirm":_vm.returnHome}},[_c('button',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.returning),expression:"returning"}],staticClass:"btn-rth",attrs:{"slot":"reference","disabled":_vm.returning},slot:"reference"},[_c('svg',{attrs:{"width":"18","height":"18","viewBox":"0 0 18 18","fill":"none"}},[_c('path',{attrs:{"d":"M9 2.5l7 6h-2v6.5h-3.5v-4h-3v4H4V8.5H2z","fill":"#fff"}})]),_c('span',[_vm._v("一键返航")])])])],1)])])])])}
225562
- var UVA_schedulingvue_type_template_id_53ce1d80_scoped_true_staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"hud"},[_c('i',{staticClass:"dot"}),_c('span',{staticClass:"rec"},[_vm._v("LIVE")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"card-title"},[_c('i',{staticClass:"bar"}),_c('span',[_vm._v("飞行状态")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"card-title"},[_c('i',{staticClass:"bar"}),_c('span',[_vm._v("广播喊话")])])}]
225542
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"dab12980-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=template&id=7b6f0c39&scoped=true&
225543
+ var UVA_schedulingvue_type_template_id_7b6f0c39_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"uva-scheduling"},[_c('div',{staticClass:"console-view"},[_c('div',{staticClass:"body"},[_c('div',{staticClass:"console-row row-top"},[_c('div',{staticClass:"viewport"},[_c('video',{ref:"droneVideo",staticClass:"feed",attrs:{"muted":"","controls":"","autoplay":"","playsinline":""},domProps:{"muted":true}}),(!_vm.videoUrl)?_c('div',{staticClass:"feed-placeholder"},[_c('svg',{attrs:{"viewBox":"0 0 48 48","fill":"none"}},[_c('rect',{attrs:{"x":"6","y":"12","width":"36","height":"24","rx":"3","stroke":"rgba(1, 170, 253, 0.45)","stroke-width":"2"}}),_c('path',{attrs:{"d":"M20 18l10 6-10 6z","fill":"rgba(1, 170, 253, 0.45)"}})]),_c('span',[_vm._v("暂无视频")])]):_vm._e(),_vm._m(0)]),_c('div',{staticClass:"card gimbal-card"},[_c('div',{staticClass:"card-title"},[_c('i',{staticClass:"bar"}),_c('span',[_vm._v("云台控制")]),(_vm.showFlightControl)?_c('div',{staticClass:"seg fixed mini"},[_c('button',{class:{ on: _vm.gimbalMode === 'gimbal' },on:{"click":function($event){_vm.gimbalMode = 'gimbal'}}},[_vm._v("云台")]),_c('button',{class:{ on: _vm.gimbalMode === 'flight' },on:{"click":function($event){_vm.gimbalMode = 'flight'}}},[_vm._v("飞行")])]):_vm._e()]),_c('div',{staticClass:"gimbal-body"},[_c('svg',{staticClass:"joystick",attrs:{"viewBox":"0 0 132 132","fill":"none"}},[_c('circle',{attrs:{"cx":"66","cy":"66","r":"64","fill":"#0a2c47","stroke":"rgba(1, 170, 253, 0.5)","stroke-width":"2"}}),_c('circle',{attrs:{"cx":"66","cy":"66","r":"44","fill":"#062a46"}}),_c('g',{staticClass:"dir"},[_c('path',{staticClass:"d-up",attrs:{"d":"M66 30l12 13H54z","fill":"#29c6ff"},on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.gimbalControl('w') : _vm.flightControl('w')}}}),_c('path',{staticClass:"d-down",attrs:{"d":"M66 102l12-13H54z","fill":"#29c6ff"},on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.gimbalControl('s') : _vm.flightControl('s')}}}),_c('path',{staticClass:"d-left",attrs:{"d":"M30 66l13-12v24z","fill":"#29c6ff"},on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.gimbalControl('a') : _vm.flightControl('a')}}}),_c('path',{staticClass:"d-right",attrs:{"d":"M102 66l-13-12v24z","fill":"#29c6ff"},on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.gimbalControl('d') : _vm.flightControl('d')}}})]),_c('circle',{attrs:{"cx":"66","cy":"66","r":"10","fill":"#fff","stroke":"#29c6ff","stroke-width":"2"}})]),_c('div',{staticClass:"zoom-col"},[_c('div',{staticClass:"zoom-head"},[_c('span',{staticClass:"lbl"},[_vm._v(_vm._s(_vm.gimbalMode === 'gimbal' ? '变焦' : '升降'))]),_c('span',{staticClass:"val"},[_vm._v(_vm._s(_vm.gimbalMode === 'gimbal' ? _vm.zoomLevel.toFixed(1) + 'x' : 'ALT'))])]),_c('div',{staticClass:"zoom-slider"},[_c('button',{staticClass:"roundbtn",on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.zoomControl('zoom_x') : _vm.flightControl('down')}}},[_c('svg',{attrs:{"width":"30","height":"30","viewBox":"0 0 30 30","fill":"none"}},[_c('path',{attrs:{"d":"M10 15h10","stroke":"#9cc9e8","stroke-width":"2","stroke-linecap":"round"}})])]),(_vm.gimbalMode === 'gimbal')?_c('div',{staticClass:"zoom-track"},[_c('div',{staticClass:"zoom-fill",style:({ width: _vm.zoomPct + '%' })})]):_c('div',{staticClass:"alt-track"},[_c('span',[_vm._v("升 / 降")])]),_c('button',{staticClass:"roundbtn",on:{"click":function($event){_vm.gimbalMode === 'gimbal' ? _vm.zoomControl('zoom_z') : _vm.flightControl('up')}}},[_c('svg',{attrs:{"width":"30","height":"30","viewBox":"0 0 30 30","fill":"none"}},[_c('path',{attrs:{"d":"M10 15h10M15 10v10","stroke":"#9cc9e8","stroke-width":"2","stroke-linecap":"round"}})])])])])])])]),_c('div',{staticClass:"console-row row-bottom"},[_c('div',{staticClass:"card status-card"},[_vm._m(1),_c('div',{staticClass:"stat-grid"},[_c('div',{staticClass:"stat accent"},[_c('span',{staticClass:"k"},[_vm._v("剩余电量")]),_c('span',{staticClass:"v"},[_vm._v(_vm._s(_vm.batteryText))])]),_c('div',{staticClass:"stat"},[_c('span',{staticClass:"k"},[_vm._v("飞行高度")]),_c('span',{staticClass:"v"},[_vm._v(_vm._s(_vm.heightText))])]),_c('div',{staticClass:"stat"},[_c('span',{staticClass:"k"},[_vm._v("飞行速度")]),_c('span',{staticClass:"v"},[_vm._v(_vm._s(_vm.speedText))])]),_c('div',{staticClass:"stat"},[_c('span',{staticClass:"k"},[_vm._v("风力")]),_c('span',{staticClass:"v"},[_vm._v(_vm._s(_vm.windText))])])])]),_c('div',{staticClass:"card broadcast-card"},[_vm._m(2),_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.broadcastText),expression:"broadcastText"}],staticClass:"bc-input",attrs:{"type":"text","placeholder":"输入广播内容…","aria-label":"广播内容"},domProps:{"value":(_vm.broadcastText)},on:{"input":function($event){if($event.target.composing){ return; }_vm.broadcastText=$event.target.value}}}),_c('div',{staticClass:"vol-row mt-16px"},[_c('span',{staticClass:"lbl"},[_vm._v("音量")]),_c('div',{staticClass:"vol-track",on:{"click":_vm.volFromEvent}},[_c('div',{staticClass:"vol-fill",style:({ width: _vm.broadcastVolume + '%' })})]),_c('span',{staticClass:"val"},[_vm._v(_vm._s(_vm.broadcastVolume)+"%")])]),_c('div',{staticClass:"seg wide mt-16px"},[_c('button',{class:{ on: _vm.broadcastMode === 1 },on:{"click":function($event){_vm.broadcastMode = 1}}},[_vm._v("单次")]),_c('button',{class:{ on: _vm.broadcastMode === 2 },on:{"click":function($event){_vm.broadcastMode = 2}}},[_vm._v("循环")])]),_c('div',{staticClass:"bc-actions"},[_c('button',{staticClass:"btn btn-play",on:{"click":_vm.broadcastToggle}},[_c('svg',{attrs:{"width":"12","height":"12","viewBox":"0 0 12 12","fill":"none"}},[(!_vm.broadcastPlaying)?_c('path',{attrs:{"d":"M3 1.5l7 4.5-7 4.5z","fill":"#fff"}}):_c('path',{attrs:{"d":"M2.5 1.5h2.4v9H2.5zM7.1 1.5h2.4v9H7.1z","fill":"#fff"}})]),_c('span',[_vm._v(_vm._s(_vm.broadcastPlaying ? '暂停' : '播放'))])]),_c('button',{staticClass:"btn btn-stop",on:{"click":_vm.broadcastStop}},[_vm._v("停止")])])]),_c('div',{staticClass:"stack"},[_c('div',{staticClass:"card light-card"},[_c('div',{staticClass:"card-title"},[_c('svg',{attrs:{"width":"14","height":"14","viewBox":"0 0 14 14","fill":"none"}},[_c('path',{attrs:{"d":"M7 1v2M7 11v2M1 7h2M11 7h2M2.8 2.8l1.4 1.4M9.8 9.8l1.4 1.4M11.2 2.8L9.8 4.2M4.2 9.8L2.8 11.2","stroke":"#29c6ff","stroke-width":"1.4","stroke-linecap":"round"}}),_c('circle',{attrs:{"cx":"7","cy":"7","r":"2.4","fill":"#29c6ff"}})]),_c('span',[_vm._v("爆闪灯控制")])]),_c('div',{staticClass:"kv"},[_c('div',{staticClass:"lbl"},[_vm._v("控制模式")]),_c('div',{staticClass:"seg fixed",class:{ dim: _vm.lightPower === 2 }},[_c('button',{class:{ on: _vm.lightMode === 1 },on:{"click":function($event){return _vm.setLightMode(1)}}},[_vm._v("常亮")]),_c('button',{class:{ on: _vm.lightMode === 2 },on:{"click":function($event){return _vm.setLightMode(2)}}},[_vm._v("爆闪")])])]),_c('div',{staticClass:"kv"},[_c('div',{staticClass:"lbl"},[_vm._v("控制方式")]),_c('div',{staticClass:"seg fixed"},[_c('button',{class:{ on: _vm.lightPower === 1 },on:{"click":function($event){return _vm.setLightPower(1)}}},[_vm._v("开启")]),_c('button',{class:{ on: _vm.lightPower === 2 },on:{"click":function($event){return _vm.setLightPower(2)}}},[_vm._v("关闭")])])])]),_c('el-popconfirm',{attrs:{"title":"确定要让无人机返航吗?","confirm-button-text":"确定","cancel-button-text":"取消","icon":"el-icon-warning","icon-color":"#E5484D"},on:{"confirm":_vm.returnHome}},[_c('button',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.returning),expression:"returning"}],staticClass:"btn-rth",attrs:{"slot":"reference","disabled":_vm.returning},slot:"reference"},[_c('svg',{attrs:{"width":"18","height":"18","viewBox":"0 0 18 18","fill":"none"}},[_c('path',{attrs:{"d":"M9 2.5l7 6h-2v6.5h-3.5v-4h-3v4H4V8.5H2z","fill":"#fff"}})]),_c('span',[_vm._v("一键返航")])])])],1)])])])])}
225544
+ var UVA_schedulingvue_type_template_id_7b6f0c39_scoped_true_staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"hud"},[_c('i',{staticClass:"dot"}),_c('span',{staticClass:"rec"},[_vm._v("LIVE")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"card-title"},[_c('i',{staticClass:"bar"}),_c('span',[_vm._v("飞行状态")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"card-title"},[_c('i',{staticClass:"bar"}),_c('span',[_vm._v("广播喊话")])])}]
225563
225545
 
225564
225546
 
225565
- // CONCATENATED MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=template&id=53ce1d80&scoped=true&
225547
+ // CONCATENATED MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=template&id=7b6f0c39&scoped=true&
225566
225548
 
225567
225549
  // CONCATENATED MODULE: ./packages/gis-map/src/component/api/droneMqtt.js
225568
225550
  /**
@@ -226012,8 +225994,8 @@ function offDroneOsd(callback) {
226012
225994
 
226013
225995
  // 无人机 OSD 实时数据(MQTT,单例服务)
226014
225996
 
226015
- // 用户信息统一从工具方法读取(项目未使用 Vuex)
226016
- // import { readUserInfo } from '../../utils/userInfo'
225997
+ // 用户信息统一从工具方法读取(localStorage 中的登录态,项目未使用 Vuex)
225998
+
226017
225999
 
226018
226000
  /* harmony default export */ var UVA_schedulingvue_type_script_lang_js_ = ({
226019
226001
  name: 'UVAScheduling',
@@ -226098,57 +226080,8 @@ function offDroneOsd(callback) {
226098
226080
  }
226099
226081
  },
226100
226082
  mounted() {
226101
- // 项目未使用 Vuex,用户信息从 localStorage 获取
226102
- this.userinfo = {
226103
- "id": "1419914914685333506",
226104
- "name": "测试人员",
226105
- "username": "ceshi",
226106
- "realName": "测试人员",
226107
- "headUrl": null,
226108
- "gender": 0,
226109
- "email": null,
226110
- "mobile": "13001522335",
226111
- "password": "",
226112
- "status": 1,
226113
- "superAdmin": 0,
226114
- "superTenant": null,
226115
- "roleList": [
226116
- "1598563416350392321"
226117
- ],
226118
- "roleMapList": [
226119
- {
226120
- "roleId": "1598563416350392321",
226121
- "roleCn": "中心角色1(含集团领导)",
226122
- "roleEn": "null"
226123
- }
226124
- ],
226125
- "tenantCode": null,
226126
- "positionDesc": null,
226127
- "hrEmployeeId": null,
226128
- "deptId": "20241129104319181-9C59-2C3C1648C",
226129
- "deptCode": "jtzb_zhglzx",
226130
- "deptName": "智慧管理中心",
226131
- "deptFullName": "山东高速集团/集团总部/高速公路运营公司(高速公路运营中心)/智慧管理中心",
226132
- "companyId": "20241129104319181-9C59-2C3C1648C",
226133
- "companyCode": null,
226134
- "companyName": "智慧管理中心",
226135
- "companyFullName": "山东高速集团/集团总部/高速公路运营公司(高速公路运营中心)/智慧管理中心",
226136
- "superiorId": null,
226137
- "token": null,
226138
- "depts": null,
226139
- "companies": [],
226140
- "roleBusinesses": [],
226141
- "deptIdList": null,
226142
- "deptCodeList": null,
226143
- "authorities": null,
226144
- "bellSub": "客服,信息发布,监测,调度",
226145
- "roleEquipments": null,
226146
- "enabled": true,
226147
- "accountNonExpired": true,
226148
- "credentialsNonExpired": true,
226149
- "accountNonLocked": true,
226150
- "xdluserId": null
226151
- }//readUserInfo()
226083
+ // 正式环境:从 localStorage 读取当前登录用户(utils/userInfo.js)
226084
+ this.userinfo = readUserInfo() || {}
226152
226085
  this.startClock()
226153
226086
  // 组件首次渲染时设备编码可能已就绪(父组件先调度成功再展开),直接进入操控台
226154
226087
  if (this.uavId) {
@@ -226591,8 +226524,8 @@ function offDroneOsd(callback) {
226591
226524
 
226592
226525
  // CONCATENATED MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=script&lang=js&
226593
226526
  /* harmony default export */ var eventLayer_UVA_schedulingvue_type_script_lang_js_ = (UVA_schedulingvue_type_script_lang_js_);
226594
- // EXTERNAL MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=style&index=0&id=53ce1d80&scoped=true&lang=css&
226595
- var UVA_schedulingvue_type_style_index_0_id_53ce1d80_scoped_true_lang_css_ = __webpack_require__("7364");
226527
+ // EXTERNAL MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=style&index=0&id=7b6f0c39&scoped=true&lang=css&
226528
+ var UVA_schedulingvue_type_style_index_0_id_7b6f0c39_scoped_true_lang_css_ = __webpack_require__("27c4");
226596
226529
 
226597
226530
  // EXTERNAL MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=style&index=1&lang=css&
226598
226531
  var UVA_schedulingvue_type_style_index_1_lang_css_ = __webpack_require__("a2bc");
@@ -226609,11 +226542,11 @@ var UVA_schedulingvue_type_style_index_1_lang_css_ = __webpack_require__("a2bc")
226609
226542
 
226610
226543
  var UVA_scheduling_component = Object(componentNormalizer["a" /* default */])(
226611
226544
  eventLayer_UVA_schedulingvue_type_script_lang_js_,
226612
- UVA_schedulingvue_type_template_id_53ce1d80_scoped_true_render,
226613
- UVA_schedulingvue_type_template_id_53ce1d80_scoped_true_staticRenderFns,
226545
+ UVA_schedulingvue_type_template_id_7b6f0c39_scoped_true_render,
226546
+ UVA_schedulingvue_type_template_id_7b6f0c39_scoped_true_staticRenderFns,
226614
226547
  false,
226615
226548
  null,
226616
- "53ce1d80",
226549
+ "7b6f0c39",
226617
226550
  null
226618
226551
 
226619
226552
  )
@@ -226862,20 +226795,18 @@ var swiper_min = __webpack_require__("f4bd");
226862
226795
  hasActiveDrone: false,
226863
226796
  // 是否已成功下发返航指令:置为已收到后,关闭弹窗不再拦截
226864
226797
  returnHomeIssued: false,
226865
- // 是否已从 OSD 观察到「飞行中」:只有飞起来过,之后出现在巢状态才算已返航,
226866
- // 否则刚下发调度、还未起飞时会被误判为已返航
226798
+ // 是否已从 OSD 观察到「离开机巢」:只有离开过,之后再回到在巢状态才算已返航
226867
226799
  droneFlyingSeen: false,
226800
+ // OSD 中「在巢」的状态基准值(首帧记录):判定不依赖 devStatus 具体取值含义
226801
+ nestDevStatus: null,
226802
+ // 观察到离巢的时间戳:用于过滤起飞瞬间的状态抖动
226803
+ droneLeftNestAt: 0,
226804
+ // 上一次 OSD devStatus:仅用于输出状态变化日志,便于排查
226805
+ lastDroneOsdStatus: null,
226868
226806
  // 调度中
226869
226807
  dispatching: false,
226870
226808
  // 返航中
226871
226809
  returning: false,
226872
- testData: {
226873
- "longitude": "117.076336",
226874
- "latitude": "36.558333",
226875
- "roadId": "G200137",
226876
- "stakeNumber": "K036+200",
226877
- "eventId": "381701626"
226878
- }
226879
226810
  };
226880
226811
  },
226881
226812
  mounted() {
@@ -226965,6 +226896,9 @@ var swiper_min = __webpack_require__("f4bd");
226965
226896
  this.hasActiveDrone = false;
226966
226897
  this.returnHomeIssued = false;
226967
226898
  this.droneFlyingSeen = false;
226899
+ this.nestDevStatus = null;
226900
+ this.droneLeftNestAt = 0;
226901
+ this.lastDroneOsdStatus = null;
226968
226902
  this.dispatching = false;
226969
226903
  this.returning = false;
226970
226904
  window.addEventListener("fullscreenchange", () => {
@@ -227741,21 +227675,14 @@ var swiper_min = __webpack_require__("f4bd");
227741
227675
  }
227742
227676
  this.reachableDrones = [];
227743
227677
  reachableDronesByPoint(
227744
- // {
227745
- // longitude: String(longitude),
227746
- // latitude: String(latitude),
227747
- // roadId: d.roadId || d.roadSection || "",
227748
- // stakeNumber: d.stakeNumber || "",
227749
- // eventId: d.eventId || d.id || "",
227750
- // // flag: 1 表示感知事件,后端据此关联事件所属道路配置
227751
- // flag: 1,
227752
- // }
227753
227678
  {
227754
- "longitude": "117.076336",
227755
- "latitude": "36.558333",
227756
- "roadId": "G200137",
227757
- "stakeNumber": "K036+200",
227758
- "eventId": "381701626"
227679
+ longitude: String(longitude),
227680
+ latitude: String(latitude),
227681
+ roadId: d.roadId || d.roadSection || "",
227682
+ stakeNumber: d.stakeNumber || "",
227683
+ eventId: d.eventId || d.id || "",
227684
+ // flag: 1 表示感知事件,后端据此关联事件所属道路配置
227685
+ flag: 1,
227759
227686
  }
227760
227687
  )
227761
227688
  .then((res) => {
@@ -227824,7 +227751,6 @@ var swiper_min = __webpack_require__("f4bd");
227824
227751
  deptId: u.deptId || "",
227825
227752
  deptName: u.deptName || u.deptFullName || u.deptNameAll || "",
227826
227753
  operatorTime: this.formatNow(),
227827
- ...this.testData
227828
227754
  };
227829
227755
  this.dispatching = true;
227830
227756
  flyToPointBrain(payload)
@@ -227838,9 +227764,12 @@ var swiper_min = __webpack_require__("f4bd");
227838
227764
  this.usedUavId = uavId;
227839
227765
  this.hasActiveDrone = true;
227840
227766
  this.showUavPanel = true;
227841
- // 新一轮调度:返航指令标记复位(需重新点击返航按钮才会置为已收到)
227767
+ // 新一轮调度:返航指令标记与 OSD 判定状态全部复位
227842
227768
  this.returnHomeIssued = false;
227843
227769
  this.droneFlyingSeen = false;
227770
+ this.nestDevStatus = null;
227771
+ this.droneLeftNestAt = 0;
227772
+ this.lastDroneOsdStatus = null;
227844
227773
  this.$message({ message: "无人机调度指令已下发!", type: "success" });
227845
227774
  // 记录当前事件调用的无人机
227846
227775
  droneRecordSave({
@@ -227873,6 +227802,9 @@ var swiper_min = __webpack_require__("f4bd");
227873
227802
  this.returnHomeIssued = true;
227874
227803
  this.hasActiveDrone = false;
227875
227804
  this.droneFlyingSeen = false;
227805
+ this.nestDevStatus = null;
227806
+ this.droneLeftNestAt = 0;
227807
+ this.lastDroneOsdStatus = null;
227876
227808
  // 必须同时清空已调度设备编码:hasReachableDrones 依赖 !dispatchedUavId,
227877
227809
  // 不清空按钮会一直保持禁用;清空后再次调度时 uavId 由空变为新值,
227878
227810
  // 也能重新触发子组件 uavId 的 watch,让操控台重新进入
@@ -227898,35 +227830,54 @@ var swiper_min = __webpack_require__("f4bd");
227898
227830
  const num = Number(value);
227899
227831
  return isNaN(num) ? null : num;
227900
227832
  },
227901
- // OSD 推送:识别「已飞起 → 回到机巢」,实时解除调度标记
227833
+ // OSD 推送:识别「离巢 → 回到机巢」,实时解除调度标记
227834
+ // 判定不依赖 devStatus 的具体取值含义:以首帧记录的在巢基准值为准,
227835
+ // 偏离基准=已离巢,回到基准=已返航(避免不同环境 0/1 含义相反造成误判)
227902
227836
  handleDroneOsd(payload) {
227903
227837
  if (!payload || !payload.osdData) return;
227904
227838
  if (!this.dispatchedUavId || payload.sn !== this.dispatchedUavId) return;
227905
227839
  const status = this.normalizeDroneStatus(payload.osdData.devStatus);
227906
227840
  if (status === null) return;
227907
- // 先记录「观察到飞行中」:只有飞起来过,之后出现在巢状态才算已返航
227908
- if (status === 1) {
227841
+ if (status !== this.lastDroneOsdStatus) {
227842
+ this.lastDroneOsdStatus = status;
227843
+ console.log("[无人机OSD] devStatus =", status, payload.osdData);
227844
+ }
227845
+ // 还没有在巢基准值:以首帧状态作为基准(此时无人机尚在机巢)
227846
+ if (this.nestDevStatus === null) {
227847
+ this.nestDevStatus = status;
227848
+ console.log("[无人机OSD] 记录在巢基准 devStatus =", status);
227849
+ return;
227850
+ }
227851
+ // 偏离基准:说明无人机已离巢(起飞 / 作业中)
227852
+ if (status !== this.nestDevStatus) {
227909
227853
  if (!this.droneFlyingSeen) {
227910
227854
  this.droneFlyingSeen = true;
227911
- console.log("[无人机OSD] 检测到无人机飞行中");
227855
+ this.droneLeftNestAt = Date.now();
227856
+ console.log("[无人机OSD] 无人机已离巢,devStatus =", status);
227912
227857
  }
227913
227858
  return;
227914
227859
  }
227915
- // 回到机巢:同步解除调度标记(无人机自行返航时本地标记不会更新)
227916
- if (status === 0 && this.droneFlyingSeen) {
227917
- console.log("[无人机OSD] 检测到无人机已回到机巢,自动解除调度标记");
227860
+ // 回到基准:且离巢时间足够长(过滤起飞瞬间的状态抖动)→ 判定已返航
227861
+ if (
227862
+ this.droneFlyingSeen &&
227863
+ this.droneLeftNestAt &&
227864
+ Date.now() - this.droneLeftNestAt > 15000
227865
+ ) {
227866
+ console.log("[无人机OSD] 无人机已回到机巢,自动解除调度标记");
227918
227867
  this.$message({ message: "无人机已返航至机巢", type: "success" });
227919
227868
  this.onReturnHome();
227920
227869
  }
227921
227870
  },
227922
- // 依据 OSD 实时状态判断已调度的无人机是否已回到机巢(devStatus:1 飞行中 / 0 在巢)
227871
+ // 依据 OSD 判断已调度的无人机是否已回到机巢
227872
+ // 判定与 devStatus 取值含义无关:离过巢,且当前状态回到「在巢基准值」即视为已返航
227923
227873
  isDroneBackToNest() {
227924
227874
  if (!this.dispatchedUavId) return true;
227925
- // 未观察到飞行中,说明可能还没起飞,不能判定为已返航
227875
+ // 未观察到离巢,说明可能还没起飞或刚起飞,不能判定为已返航
227926
227876
  if (!this.droneFlyingSeen) return false;
227877
+ if (this.nestDevStatus === null) return false;
227927
227878
  const osd = droneMqtt.getDroneOsd(this.dispatchedUavId);
227928
227879
  if (!osd) return false;
227929
- return this.normalizeDroneStatus(osd.devStatus) === 0;
227880
+ return this.normalizeDroneStatus(osd.devStatus) === this.nestDevStatus;
227930
227881
  },
227931
227882
  // 用 OSD 实时状态复核一次:无人机已在机巢时同步解除调度标记
227932
227883
  // (无人机自行返航、或由其它入口返航时,本地 hasActiveDrone 会一直为 true)
@@ -227939,9 +227890,10 @@ var swiper_min = __webpack_require__("f4bd");
227939
227890
  return true;
227940
227891
  },
227941
227892
  // 弹窗关闭前校验(由 gis-map 的 closePopup 调用)
227942
- // 无人机尚未收到返航指令且仍在执行任务时,拦截关闭并提醒先点右下角「一键返航」;
227943
- // 返航指令下发成功(returnHomeIssued)后再次关闭即可直接通过
227944
- // (next 为父级「继续关闭」回调,本流程改为用户手动重试关闭,暂不使用)
227893
+ // 1) 已收到返航指令 / OSD 显示已回巢 → 直接放行;
227894
+ // 2) 否则先「保底」强制补发一次返航指令(指令可重复下发,避免无人机滞留),
227895
+ // 再提醒用户并拦截本次关闭;指令下发成功后 returnHomeIssued 会置位,
227896
+ // 用户再点一次关闭即可直接通过
227945
227897
  beforeClosePopup() {
227946
227898
  // 没有正在执行任务的无人机(或无设备编码):直接放行
227947
227899
  if (!this.hasActiveDrone || !this.dispatchedUavId) return true;
@@ -227950,9 +227902,17 @@ var swiper_min = __webpack_require__("f4bd");
227950
227902
  // 兜底:本地没收到返航指令,但 OSD 显示无人机已回到机巢
227951
227903
  // (自行返航、或由其它入口下发过返航),同步标记后直接放行
227952
227904
  if (this.syncDroneReturnedState()) return true;
227953
- // 未收到返航指令:仅提醒,不代替用户下发返航、也不关闭弹窗
227905
+ // 保底中的保底:不管用户有没有去点右下角「一键返航」,关闭时都强制补发一次返航指令
227906
+ if (!this.returning) {
227907
+ console.log("[无人机] 关闭弹窗保底:强制补发一次返航指令");
227908
+ this.returning = true;
227909
+ this.doReturnHome().finally(() => {
227910
+ this.returning = false;
227911
+ });
227912
+ }
227913
+ // 仍拦截本次关闭并给出提示,避免用户在指令未下发成功时误以为已返航
227954
227914
  this.$alert(
227955
- "无人机尚未返航,请先点击右下角「一键返航」按钮,返航指令下发成功后再关闭弹窗",
227915
+ "关闭弹窗前已为无人机下发返航指令,请待指令下发成功后再关闭;也可点击右下角「一键返航」手动确认",
227956
227916
  "提示",
227957
227917
  {
227958
227918
  confirmButtonText: "知道了",
@@ -227962,7 +227922,7 @@ var swiper_min = __webpack_require__("f4bd");
227962
227922
  return false;
227963
227923
  },
227964
227924
  // 操作人信息:调度 / 返航统一使用
227965
- // (开发期读不到 localStorage,写死值兜底统一在 utils/userInfo.js 的 DEBUG_USER_INFO 中维护)
227925
+ // 正式环境统一从 localStorage 读取当前登录用户(utils/userInfo.js)
227966
227926
  getOperatorInfo() {
227967
227927
  return readUserInfo() || {};
227968
227928
  },
@@ -228011,7 +227971,6 @@ var swiper_min = __webpack_require__("f4bd");
228011
227971
  deptId: u.deptId || "",
228012
227972
  deptName: u.deptName || u.deptFullName || u.deptNameAll || "",
228013
227973
  operatorTime: this.formatNow(),
228014
- ...this.testData
228015
227974
  };
228016
227975
  console.log(payload);
228017
227976
 
@@ -228157,7 +228116,6 @@ var swiper_min = __webpack_require__("f4bd");
228157
228116
  eventId: d.eventId || d.id || "",
228158
228117
  eventTypeCode: d.eventTypeCode || "",
228159
228118
  eventName: d.trafficSubName || d.eventType || "",
228160
- ...this.testData
228161
228119
  };
228162
228120
  },
228163
228121
  },
@@ -228194,8 +228152,8 @@ var perceptionEventLayervue_type_style_index_1_lang_css_ = __webpack_require__("
228194
228152
 
228195
228153
  var perceptionEventLayer_component = Object(componentNormalizer["a" /* default */])(
228196
228154
  eventLayer_perceptionEventLayervue_type_script_lang_js_,
228197
- perceptionEventLayervue_type_template_id_706dc323_render,
228198
- perceptionEventLayervue_type_template_id_706dc323_staticRenderFns,
228155
+ perceptionEventLayervue_type_template_id_dbb3567c_render,
228156
+ perceptionEventLayervue_type_template_id_dbb3567c_staticRenderFns,
228199
228157
  false,
228200
228158
  null,
228201
228159
  null,