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.
@@ -18367,6 +18367,17 @@ var update = add("6dd908fb", content, true, {"sourceMap":false,"shadowMode":fals
18367
18367
  /* unused harmony reexport * */
18368
18368
 
18369
18369
 
18370
+ /***/ }),
18371
+
18372
+ /***/ "27c4":
18373
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
18374
+
18375
+ "use strict";
18376
+ /* 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");
18377
+ /* 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__);
18378
+ /* unused harmony reexport * */
18379
+
18380
+
18370
18381
  /***/ }),
18371
18382
 
18372
18383
  /***/ "2877":
@@ -35864,6 +35875,20 @@ exports.push([module.i, ".videoPlay[data-v-56ca3169]{height:1.0416rem;width:1.84
35864
35875
  module.exports = exports;
35865
35876
 
35866
35877
 
35878
+ /***/ }),
35879
+
35880
+ /***/ "5848":
35881
+ /***/ (function(module, exports, __webpack_require__) {
35882
+
35883
+ // Imports
35884
+ var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
35885
+ exports = ___CSS_LOADER_API_IMPORT___(false);
35886
+ // Module
35887
+ 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}", ""]);
35888
+ // Exports
35889
+ module.exports = exports;
35890
+
35891
+
35867
35892
  /***/ }),
35868
35893
 
35869
35894
  /***/ "5852":
@@ -40112,17 +40137,6 @@ if(content.locals) module.exports = content.locals;
40112
40137
  var add = __webpack_require__("499e").default
40113
40138
  var update = add("04457c2c", content, true, {"sourceMap":false,"shadowMode":false});
40114
40139
 
40115
- /***/ }),
40116
-
40117
- /***/ "7364":
40118
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
40119
-
40120
- "use strict";
40121
- /* 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");
40122
- /* 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__);
40123
- /* unused harmony reexport * */
40124
-
40125
-
40126
40140
  /***/ }),
40127
40141
 
40128
40142
  /***/ "7387":
@@ -47644,20 +47658,6 @@ function ruleslanguage(hljs) {
47644
47658
  module.exports = ruleslanguage;
47645
47659
 
47646
47660
 
47647
- /***/ }),
47648
-
47649
- /***/ "8ae3":
47650
- /***/ (function(module, exports, __webpack_require__) {
47651
-
47652
- // Imports
47653
- var ___CSS_LOADER_API_IMPORT___ = __webpack_require__("24fb");
47654
- exports = ___CSS_LOADER_API_IMPORT___(false);
47655
- // Module
47656
- 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}", ""]);
47657
- // Exports
47658
- module.exports = exports;
47659
-
47660
-
47661
47661
  /***/ }),
47662
47662
 
47663
47663
  /***/ "8bbb":
@@ -54357,6 +54357,22 @@ function rsl(hljs) {
54357
54357
  module.exports = rsl;
54358
54358
 
54359
54359
 
54360
+ /***/ }),
54361
+
54362
+ /***/ "a0e1":
54363
+ /***/ (function(module, exports, __webpack_require__) {
54364
+
54365
+ // style-loader: Adds some css to the DOM by adding a <style> tag
54366
+
54367
+ // load the styles
54368
+ var content = __webpack_require__("5848");
54369
+ if(content.__esModule) content = content.default;
54370
+ if(typeof content === 'string') content = [[module.i, content, '']];
54371
+ if(content.locals) module.exports = content.locals;
54372
+ // add the styles to the DOM
54373
+ var add = __webpack_require__("499e").default
54374
+ var update = add("d776cf30", content, true, {"sourceMap":false,"shadowMode":false});
54375
+
54360
54376
  /***/ }),
54361
54377
 
54362
54378
  /***/ "a14e":
@@ -161264,22 +161280,6 @@ function stylus(hljs) {
161264
161280
  module.exports = stylus;
161265
161281
 
161266
161282
 
161267
- /***/ }),
161268
-
161269
- /***/ "bd92":
161270
- /***/ (function(module, exports, __webpack_require__) {
161271
-
161272
- // style-loader: Adds some css to the DOM by adding a <style> tag
161273
-
161274
- // load the styles
161275
- var content = __webpack_require__("8ae3");
161276
- if(content.__esModule) content = content.default;
161277
- if(typeof content === 'string') content = [[module.i, content, '']];
161278
- if(content.locals) module.exports = content.locals;
161279
- // add the styles to the DOM
161280
- var add = __webpack_require__("499e").default
161281
- var update = add("0dca79d1", content, true, {"sourceMap":false,"shadowMode":false});
161282
-
161283
161283
  /***/ }),
161284
161284
 
161285
161285
  /***/ "bde7":
@@ -225284,15 +225284,15 @@ var trafficEventLayer_component = Object(componentNormalizer["a" /* default */])
225284
225284
  )
225285
225285
 
225286
225286
  /* harmony default export */ var trafficEventLayer = (trafficEventLayer_component.exports);
225287
- // 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&
225288
- 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("事件解除")]),(
225287
+ // 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&
225288
+ 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("事件解除")]),(
225289
225289
  _vm.popupAttr.eventTypeCode === 53 ||
225290
225290
  _vm.popupAttr.eventTypeCode === '53'
225291
225291
  )?_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)}
225292
- var perceptionEventLayervue_type_template_id_706dc323_staticRenderFns = []
225292
+ var perceptionEventLayervue_type_template_id_dbb3567c_staticRenderFns = []
225293
225293
 
225294
225294
 
225295
- // CONCATENATED MODULE: ./packages/gis-map/src/component/eventLayer/perceptionEventLayer.vue?vue&type=template&id=706dc323&
225295
+ // CONCATENATED MODULE: ./packages/gis-map/src/component/eventLayer/perceptionEventLayer.vue?vue&type=template&id=dbb3567c&
225296
225296
 
225297
225297
  // CONCATENATED MODULE: ./packages/gis-map/src/component/api/wurenji.js
225298
225298
  /* ==================== 无人机调度接口 ==================== */
@@ -225469,29 +225469,11 @@ function droneRecordUpdate (data) {
225469
225469
  * 因此通过 info.id 是否存在来过滤无效分组。
225470
225470
  */
225471
225471
 
225472
- /**
225473
- * 开发调试用写死数据
225474
- *
225475
- * 联调期间组件内暂时读不到 localStorage,先写死操作人信息兜底。
225476
- * 对应本地存储键 sdhsg_its_app-1.6.12 中 sys.user.ceshi.user.info 的关键字段。
225477
- * TODO: 功能全部完成、能正常读取 localStorage 后,删除本常量及 readUserInfo 中的合并逻辑
225478
- */
225479
- const DEBUG_USER_INFO = {
225480
- id: '1419914914685333506',
225481
- name: '测试人员',
225482
- username: 'ceshi',
225483
- realName: '测试人员',
225484
- deptId: '20241129104319181-9C59-2C3C1648C',
225485
- deptName: '智慧管理中心',
225486
- deptFullName:
225487
- '山东高速集团/集团总部/高速公路运营公司(高速公路运营中心)/智慧管理中心'
225488
- }
225489
-
225490
225472
  const USER_STORE_KEY = 'sdhsg_its_app-1.6.12'
225491
225473
  const USER_LOGIN_KEY = 'sdhsg_its_app-1.6.12-login'
225492
225474
 
225493
225475
  /**
225494
- * 从 localStorage 解析真实用户信息(不包含调试写死值)
225476
+ * 从 localStorage 解析当前登录用户信息
225495
225477
  * @returns {Object} 用户信息对象,取不到时返回空对象
225496
225478
  */
225497
225479
  function readStoreUserInfo() {
@@ -225538,22 +225520,22 @@ function readStoreUserInfo() {
225538
225520
  }
225539
225521
 
225540
225522
  /**
225541
- * 读取当前登录用户信息
225542
- * 真实数据优先;读不到时用调试写死值兜底(保证联调期间各接口能带上操作人信息)
225523
+ * 读取当前登录用户信息(正式环境:只取 localStorage 中的真实登录态)
225524
+ * 读不到时返回空对象,调用方按需判空
225543
225525
  * @returns {Object} 用户信息对象
225544
225526
  */
225545
225527
  function readUserInfo() {
225546
- return Object.assign({}, DEBUG_USER_INFO, readStoreUserInfo())
225528
+ return readStoreUserInfo()
225547
225529
  }
225548
225530
 
225549
225531
  /* harmony default export */ var userInfo = (readUserInfo);
225550
225532
 
225551
- // 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&
225552
- 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)])])])])}
225553
- 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("广播喊话")])])}]
225533
+ // 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&
225534
+ 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)])])])])}
225535
+ 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("广播喊话")])])}]
225554
225536
 
225555
225537
 
225556
- // CONCATENATED MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=template&id=53ce1d80&scoped=true&
225538
+ // CONCATENATED MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=template&id=7b6f0c39&scoped=true&
225557
225539
 
225558
225540
  // CONCATENATED MODULE: ./packages/gis-map/src/component/api/droneMqtt.js
225559
225541
  /**
@@ -226003,8 +225985,8 @@ function offDroneOsd(callback) {
226003
225985
 
226004
225986
  // 无人机 OSD 实时数据(MQTT,单例服务)
226005
225987
 
226006
- // 用户信息统一从工具方法读取(项目未使用 Vuex)
226007
- // import { readUserInfo } from '../../utils/userInfo'
225988
+ // 用户信息统一从工具方法读取(localStorage 中的登录态,项目未使用 Vuex)
225989
+
226008
225990
 
226009
225991
  /* harmony default export */ var UVA_schedulingvue_type_script_lang_js_ = ({
226010
225992
  name: 'UVAScheduling',
@@ -226089,57 +226071,8 @@ function offDroneOsd(callback) {
226089
226071
  }
226090
226072
  },
226091
226073
  mounted() {
226092
- // 项目未使用 Vuex,用户信息从 localStorage 获取
226093
- this.userinfo = {
226094
- "id": "1419914914685333506",
226095
- "name": "测试人员",
226096
- "username": "ceshi",
226097
- "realName": "测试人员",
226098
- "headUrl": null,
226099
- "gender": 0,
226100
- "email": null,
226101
- "mobile": "13001522335",
226102
- "password": "",
226103
- "status": 1,
226104
- "superAdmin": 0,
226105
- "superTenant": null,
226106
- "roleList": [
226107
- "1598563416350392321"
226108
- ],
226109
- "roleMapList": [
226110
- {
226111
- "roleId": "1598563416350392321",
226112
- "roleCn": "中心角色1(含集团领导)",
226113
- "roleEn": "null"
226114
- }
226115
- ],
226116
- "tenantCode": null,
226117
- "positionDesc": null,
226118
- "hrEmployeeId": null,
226119
- "deptId": "20241129104319181-9C59-2C3C1648C",
226120
- "deptCode": "jtzb_zhglzx",
226121
- "deptName": "智慧管理中心",
226122
- "deptFullName": "山东高速集团/集团总部/高速公路运营公司(高速公路运营中心)/智慧管理中心",
226123
- "companyId": "20241129104319181-9C59-2C3C1648C",
226124
- "companyCode": null,
226125
- "companyName": "智慧管理中心",
226126
- "companyFullName": "山东高速集团/集团总部/高速公路运营公司(高速公路运营中心)/智慧管理中心",
226127
- "superiorId": null,
226128
- "token": null,
226129
- "depts": null,
226130
- "companies": [],
226131
- "roleBusinesses": [],
226132
- "deptIdList": null,
226133
- "deptCodeList": null,
226134
- "authorities": null,
226135
- "bellSub": "客服,信息发布,监测,调度",
226136
- "roleEquipments": null,
226137
- "enabled": true,
226138
- "accountNonExpired": true,
226139
- "credentialsNonExpired": true,
226140
- "accountNonLocked": true,
226141
- "xdluserId": null
226142
- }//readUserInfo()
226074
+ // 正式环境:从 localStorage 读取当前登录用户(utils/userInfo.js)
226075
+ this.userinfo = readUserInfo() || {}
226143
226076
  this.startClock()
226144
226077
  // 组件首次渲染时设备编码可能已就绪(父组件先调度成功再展开),直接进入操控台
226145
226078
  if (this.uavId) {
@@ -226582,8 +226515,8 @@ function offDroneOsd(callback) {
226582
226515
 
226583
226516
  // CONCATENATED MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=script&lang=js&
226584
226517
  /* harmony default export */ var eventLayer_UVA_schedulingvue_type_script_lang_js_ = (UVA_schedulingvue_type_script_lang_js_);
226585
- // EXTERNAL MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=style&index=0&id=53ce1d80&scoped=true&lang=css&
226586
- var UVA_schedulingvue_type_style_index_0_id_53ce1d80_scoped_true_lang_css_ = __webpack_require__("7364");
226518
+ // EXTERNAL MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=style&index=0&id=7b6f0c39&scoped=true&lang=css&
226519
+ var UVA_schedulingvue_type_style_index_0_id_7b6f0c39_scoped_true_lang_css_ = __webpack_require__("27c4");
226587
226520
 
226588
226521
  // EXTERNAL MODULE: ./packages/gis-map/src/component/eventLayer/UVA-scheduling.vue?vue&type=style&index=1&lang=css&
226589
226522
  var UVA_schedulingvue_type_style_index_1_lang_css_ = __webpack_require__("a2bc");
@@ -226600,11 +226533,11 @@ var UVA_schedulingvue_type_style_index_1_lang_css_ = __webpack_require__("a2bc")
226600
226533
 
226601
226534
  var UVA_scheduling_component = Object(componentNormalizer["a" /* default */])(
226602
226535
  eventLayer_UVA_schedulingvue_type_script_lang_js_,
226603
- UVA_schedulingvue_type_template_id_53ce1d80_scoped_true_render,
226604
- UVA_schedulingvue_type_template_id_53ce1d80_scoped_true_staticRenderFns,
226536
+ UVA_schedulingvue_type_template_id_7b6f0c39_scoped_true_render,
226537
+ UVA_schedulingvue_type_template_id_7b6f0c39_scoped_true_staticRenderFns,
226605
226538
  false,
226606
226539
  null,
226607
- "53ce1d80",
226540
+ "7b6f0c39",
226608
226541
  null
226609
226542
 
226610
226543
  )
@@ -226853,20 +226786,18 @@ var swiper_min = __webpack_require__("f4bd");
226853
226786
  hasActiveDrone: false,
226854
226787
  // 是否已成功下发返航指令:置为已收到后,关闭弹窗不再拦截
226855
226788
  returnHomeIssued: false,
226856
- // 是否已从 OSD 观察到「飞行中」:只有飞起来过,之后出现在巢状态才算已返航,
226857
- // 否则刚下发调度、还未起飞时会被误判为已返航
226789
+ // 是否已从 OSD 观察到「离开机巢」:只有离开过,之后再回到在巢状态才算已返航
226858
226790
  droneFlyingSeen: false,
226791
+ // OSD 中「在巢」的状态基准值(首帧记录):判定不依赖 devStatus 具体取值含义
226792
+ nestDevStatus: null,
226793
+ // 观察到离巢的时间戳:用于过滤起飞瞬间的状态抖动
226794
+ droneLeftNestAt: 0,
226795
+ // 上一次 OSD devStatus:仅用于输出状态变化日志,便于排查
226796
+ lastDroneOsdStatus: null,
226859
226797
  // 调度中
226860
226798
  dispatching: false,
226861
226799
  // 返航中
226862
226800
  returning: false,
226863
- testData: {
226864
- "longitude": "117.076336",
226865
- "latitude": "36.558333",
226866
- "roadId": "G200137",
226867
- "stakeNumber": "K036+200",
226868
- "eventId": "381701626"
226869
- }
226870
226801
  };
226871
226802
  },
226872
226803
  mounted() {
@@ -226956,6 +226887,9 @@ var swiper_min = __webpack_require__("f4bd");
226956
226887
  this.hasActiveDrone = false;
226957
226888
  this.returnHomeIssued = false;
226958
226889
  this.droneFlyingSeen = false;
226890
+ this.nestDevStatus = null;
226891
+ this.droneLeftNestAt = 0;
226892
+ this.lastDroneOsdStatus = null;
226959
226893
  this.dispatching = false;
226960
226894
  this.returning = false;
226961
226895
  window.addEventListener("fullscreenchange", () => {
@@ -227732,21 +227666,14 @@ var swiper_min = __webpack_require__("f4bd");
227732
227666
  }
227733
227667
  this.reachableDrones = [];
227734
227668
  reachableDronesByPoint(
227735
- // {
227736
- // longitude: String(longitude),
227737
- // latitude: String(latitude),
227738
- // roadId: d.roadId || d.roadSection || "",
227739
- // stakeNumber: d.stakeNumber || "",
227740
- // eventId: d.eventId || d.id || "",
227741
- // // flag: 1 表示感知事件,后端据此关联事件所属道路配置
227742
- // flag: 1,
227743
- // }
227744
227669
  {
227745
- "longitude": "117.076336",
227746
- "latitude": "36.558333",
227747
- "roadId": "G200137",
227748
- "stakeNumber": "K036+200",
227749
- "eventId": "381701626"
227670
+ longitude: String(longitude),
227671
+ latitude: String(latitude),
227672
+ roadId: d.roadId || d.roadSection || "",
227673
+ stakeNumber: d.stakeNumber || "",
227674
+ eventId: d.eventId || d.id || "",
227675
+ // flag: 1 表示感知事件,后端据此关联事件所属道路配置
227676
+ flag: 1,
227750
227677
  }
227751
227678
  )
227752
227679
  .then((res) => {
@@ -227815,7 +227742,6 @@ var swiper_min = __webpack_require__("f4bd");
227815
227742
  deptId: u.deptId || "",
227816
227743
  deptName: u.deptName || u.deptFullName || u.deptNameAll || "",
227817
227744
  operatorTime: this.formatNow(),
227818
- ...this.testData
227819
227745
  };
227820
227746
  this.dispatching = true;
227821
227747
  flyToPointBrain(payload)
@@ -227829,9 +227755,12 @@ var swiper_min = __webpack_require__("f4bd");
227829
227755
  this.usedUavId = uavId;
227830
227756
  this.hasActiveDrone = true;
227831
227757
  this.showUavPanel = true;
227832
- // 新一轮调度:返航指令标记复位(需重新点击返航按钮才会置为已收到)
227758
+ // 新一轮调度:返航指令标记与 OSD 判定状态全部复位
227833
227759
  this.returnHomeIssued = false;
227834
227760
  this.droneFlyingSeen = false;
227761
+ this.nestDevStatus = null;
227762
+ this.droneLeftNestAt = 0;
227763
+ this.lastDroneOsdStatus = null;
227835
227764
  this.$message({ message: "无人机调度指令已下发!", type: "success" });
227836
227765
  // 记录当前事件调用的无人机
227837
227766
  droneRecordSave({
@@ -227864,6 +227793,9 @@ var swiper_min = __webpack_require__("f4bd");
227864
227793
  this.returnHomeIssued = true;
227865
227794
  this.hasActiveDrone = false;
227866
227795
  this.droneFlyingSeen = false;
227796
+ this.nestDevStatus = null;
227797
+ this.droneLeftNestAt = 0;
227798
+ this.lastDroneOsdStatus = null;
227867
227799
  // 必须同时清空已调度设备编码:hasReachableDrones 依赖 !dispatchedUavId,
227868
227800
  // 不清空按钮会一直保持禁用;清空后再次调度时 uavId 由空变为新值,
227869
227801
  // 也能重新触发子组件 uavId 的 watch,让操控台重新进入
@@ -227889,35 +227821,54 @@ var swiper_min = __webpack_require__("f4bd");
227889
227821
  const num = Number(value);
227890
227822
  return isNaN(num) ? null : num;
227891
227823
  },
227892
- // OSD 推送:识别「已飞起 → 回到机巢」,实时解除调度标记
227824
+ // OSD 推送:识别「离巢 → 回到机巢」,实时解除调度标记
227825
+ // 判定不依赖 devStatus 的具体取值含义:以首帧记录的在巢基准值为准,
227826
+ // 偏离基准=已离巢,回到基准=已返航(避免不同环境 0/1 含义相反造成误判)
227893
227827
  handleDroneOsd(payload) {
227894
227828
  if (!payload || !payload.osdData) return;
227895
227829
  if (!this.dispatchedUavId || payload.sn !== this.dispatchedUavId) return;
227896
227830
  const status = this.normalizeDroneStatus(payload.osdData.devStatus);
227897
227831
  if (status === null) return;
227898
- // 先记录「观察到飞行中」:只有飞起来过,之后出现在巢状态才算已返航
227899
- if (status === 1) {
227832
+ if (status !== this.lastDroneOsdStatus) {
227833
+ this.lastDroneOsdStatus = status;
227834
+ console.log("[无人机OSD] devStatus =", status, payload.osdData);
227835
+ }
227836
+ // 还没有在巢基准值:以首帧状态作为基准(此时无人机尚在机巢)
227837
+ if (this.nestDevStatus === null) {
227838
+ this.nestDevStatus = status;
227839
+ console.log("[无人机OSD] 记录在巢基准 devStatus =", status);
227840
+ return;
227841
+ }
227842
+ // 偏离基准:说明无人机已离巢(起飞 / 作业中)
227843
+ if (status !== this.nestDevStatus) {
227900
227844
  if (!this.droneFlyingSeen) {
227901
227845
  this.droneFlyingSeen = true;
227902
- console.log("[无人机OSD] 检测到无人机飞行中");
227846
+ this.droneLeftNestAt = Date.now();
227847
+ console.log("[无人机OSD] 无人机已离巢,devStatus =", status);
227903
227848
  }
227904
227849
  return;
227905
227850
  }
227906
- // 回到机巢:同步解除调度标记(无人机自行返航时本地标记不会更新)
227907
- if (status === 0 && this.droneFlyingSeen) {
227908
- console.log("[无人机OSD] 检测到无人机已回到机巢,自动解除调度标记");
227851
+ // 回到基准:且离巢时间足够长(过滤起飞瞬间的状态抖动)→ 判定已返航
227852
+ if (
227853
+ this.droneFlyingSeen &&
227854
+ this.droneLeftNestAt &&
227855
+ Date.now() - this.droneLeftNestAt > 15000
227856
+ ) {
227857
+ console.log("[无人机OSD] 无人机已回到机巢,自动解除调度标记");
227909
227858
  this.$message({ message: "无人机已返航至机巢", type: "success" });
227910
227859
  this.onReturnHome();
227911
227860
  }
227912
227861
  },
227913
- // 依据 OSD 实时状态判断已调度的无人机是否已回到机巢(devStatus:1 飞行中 / 0 在巢)
227862
+ // 依据 OSD 判断已调度的无人机是否已回到机巢
227863
+ // 判定与 devStatus 取值含义无关:离过巢,且当前状态回到「在巢基准值」即视为已返航
227914
227864
  isDroneBackToNest() {
227915
227865
  if (!this.dispatchedUavId) return true;
227916
- // 未观察到飞行中,说明可能还没起飞,不能判定为已返航
227866
+ // 未观察到离巢,说明可能还没起飞或刚起飞,不能判定为已返航
227917
227867
  if (!this.droneFlyingSeen) return false;
227868
+ if (this.nestDevStatus === null) return false;
227918
227869
  const osd = droneMqtt.getDroneOsd(this.dispatchedUavId);
227919
227870
  if (!osd) return false;
227920
- return this.normalizeDroneStatus(osd.devStatus) === 0;
227871
+ return this.normalizeDroneStatus(osd.devStatus) === this.nestDevStatus;
227921
227872
  },
227922
227873
  // 用 OSD 实时状态复核一次:无人机已在机巢时同步解除调度标记
227923
227874
  // (无人机自行返航、或由其它入口返航时,本地 hasActiveDrone 会一直为 true)
@@ -227930,9 +227881,10 @@ var swiper_min = __webpack_require__("f4bd");
227930
227881
  return true;
227931
227882
  },
227932
227883
  // 弹窗关闭前校验(由 gis-map 的 closePopup 调用)
227933
- // 无人机尚未收到返航指令且仍在执行任务时,拦截关闭并提醒先点右下角「一键返航」;
227934
- // 返航指令下发成功(returnHomeIssued)后再次关闭即可直接通过
227935
- // (next 为父级「继续关闭」回调,本流程改为用户手动重试关闭,暂不使用)
227884
+ // 1) 已收到返航指令 / OSD 显示已回巢 → 直接放行;
227885
+ // 2) 否则先「保底」强制补发一次返航指令(指令可重复下发,避免无人机滞留),
227886
+ // 再提醒用户并拦截本次关闭;指令下发成功后 returnHomeIssued 会置位,
227887
+ // 用户再点一次关闭即可直接通过
227936
227888
  beforeClosePopup() {
227937
227889
  // 没有正在执行任务的无人机(或无设备编码):直接放行
227938
227890
  if (!this.hasActiveDrone || !this.dispatchedUavId) return true;
@@ -227941,9 +227893,17 @@ var swiper_min = __webpack_require__("f4bd");
227941
227893
  // 兜底:本地没收到返航指令,但 OSD 显示无人机已回到机巢
227942
227894
  // (自行返航、或由其它入口下发过返航),同步标记后直接放行
227943
227895
  if (this.syncDroneReturnedState()) return true;
227944
- // 未收到返航指令:仅提醒,不代替用户下发返航、也不关闭弹窗
227896
+ // 保底中的保底:不管用户有没有去点右下角「一键返航」,关闭时都强制补发一次返航指令
227897
+ if (!this.returning) {
227898
+ console.log("[无人机] 关闭弹窗保底:强制补发一次返航指令");
227899
+ this.returning = true;
227900
+ this.doReturnHome().finally(() => {
227901
+ this.returning = false;
227902
+ });
227903
+ }
227904
+ // 仍拦截本次关闭并给出提示,避免用户在指令未下发成功时误以为已返航
227945
227905
  this.$alert(
227946
- "无人机尚未返航,请先点击右下角「一键返航」按钮,返航指令下发成功后再关闭弹窗",
227906
+ "关闭弹窗前已为无人机下发返航指令,请待指令下发成功后再关闭;也可点击右下角「一键返航」手动确认",
227947
227907
  "提示",
227948
227908
  {
227949
227909
  confirmButtonText: "知道了",
@@ -227953,7 +227913,7 @@ var swiper_min = __webpack_require__("f4bd");
227953
227913
  return false;
227954
227914
  },
227955
227915
  // 操作人信息:调度 / 返航统一使用
227956
- // (开发期读不到 localStorage,写死值兜底统一在 utils/userInfo.js 的 DEBUG_USER_INFO 中维护)
227916
+ // 正式环境统一从 localStorage 读取当前登录用户(utils/userInfo.js)
227957
227917
  getOperatorInfo() {
227958
227918
  return readUserInfo() || {};
227959
227919
  },
@@ -228002,7 +227962,6 @@ var swiper_min = __webpack_require__("f4bd");
228002
227962
  deptId: u.deptId || "",
228003
227963
  deptName: u.deptName || u.deptFullName || u.deptNameAll || "",
228004
227964
  operatorTime: this.formatNow(),
228005
- ...this.testData
228006
227965
  };
228007
227966
  console.log(payload);
228008
227967
 
@@ -228148,7 +228107,6 @@ var swiper_min = __webpack_require__("f4bd");
228148
228107
  eventId: d.eventId || d.id || "",
228149
228108
  eventTypeCode: d.eventTypeCode || "",
228150
228109
  eventName: d.trafficSubName || d.eventType || "",
228151
- ...this.testData
228152
228110
  };
228153
228111
  },
228154
228112
  },
@@ -228185,8 +228143,8 @@ var perceptionEventLayervue_type_style_index_1_lang_css_ = __webpack_require__("
228185
228143
 
228186
228144
  var perceptionEventLayer_component = Object(componentNormalizer["a" /* default */])(
228187
228145
  eventLayer_perceptionEventLayervue_type_script_lang_js_,
228188
- perceptionEventLayervue_type_template_id_706dc323_render,
228189
- perceptionEventLayervue_type_template_id_706dc323_staticRenderFns,
228146
+ perceptionEventLayervue_type_template_id_dbb3567c_render,
228147
+ perceptionEventLayervue_type_template_id_dbb3567c_staticRenderFns,
228190
228148
  false,
228191
228149
  null,
228192
228150
  null,