修改bug文档

This commit is contained in:
2025-11-12 17:30:22 +08:00
parent 2b7e0f45de
commit ae48c8fbad
18 changed files with 882 additions and 407 deletions

File diff suppressed because one or more lines are too long

View File

@ -34,7 +34,7 @@
}
:root {
--color-base1: 0, 255, 255;
--color-sdk-base-rgb: 0, 255, 255;
--color-sdk-auxiliary: 0, 66, 66;
--color-sdk-auxiliary-public: #ffffff;
--color-sdk-warning-0: #1BF8C3;
@ -44,9 +44,9 @@
--color-sdk-text-head: #FFFFFF;
--color-sdk-text-head-1: #E6F7FF;
--color-sdk-text-head-2: #ADF1FF;
--color-sdk-gradual: rgb(var(--color-base1)) 6.25%, var(--color-border1) 100%;
--color-sdk-bg-gradual: rgba(var(--color-base1), 0.2) 0%, rgba(var(--color-base1), 0) 100%;
--color-text-shadow: rgba(20, 118, 255, 1);
--color-sdk-gradual: rgb(0, 255, 255) 6.25%, rgb(0, 200, 255) 100%;
--color-sdk-bg-gradual: #00ffff33 0%, #00ffff00 100%;
--color-sdk-text-shadow: rgba(20, 118, 255, 1);
}
.cesium-viewer-cesiumWidgetContainer {
@ -88,7 +88,7 @@
width: 70.5px;
height: 6px;
opacity: 1;
background: rgba(var(--color-base1), 1);
background: rgba(var(--color-sdk-base-rgb), 1);
clip-path: polygon(0 0, calc(100% - 3px) 0, 100% 6px, 0 6px);
}
@ -158,8 +158,8 @@
border-radius: 4px;
white-space: nowrap;
border-radius: 4px;
background: rgba(var(--color-base1), 0.2);
border: 1px solid rgba(var(--color-base1), 0.5);
background: rgba(var(--color-sdk-base-rgb), 0.2);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
display: flex;
justify-content: center;
align-items: center;
@ -170,7 +170,7 @@
}
.YJ-custom-base-dialog button:not(button[disabled]):hover {
border-color: rgba(var(--color-base1), 1) !important;
border-color: rgba(var(--color-sdk-base-rgb), 1) !important;
cursor: pointer;
}
@ -224,7 +224,7 @@
line-height: 0px;
color: rgba(255, 255, 255, 1);
text-align: left;
text-shadow: 0px 0px 9px var(--color-text-shadow);
text-shadow: 0px 0px 9px var(--color-sdk-text-shadow);
-webkit-pointer-events: none;
-moz-pointer-events: none;
-ms-pointer-events: none;
@ -244,7 +244,7 @@
line-height: 0px;
color: rgba(255, 255, 255, 1);
text-align: left;
text-shadow: 0px 0px 9px var(--color-text-shadow)
text-shadow: 0px 0px 9px var(--color-sdk-text-shadow)
}
.YJ-custom-base-dialog>.title-box>.close-box {
@ -262,7 +262,7 @@
display: block;
width: 100%;
height: 100%;
background: rgba(var(--color-base1), 1);
background: rgba(var(--color-sdk-base-rgb), 1);
opacity: 0.5;
}
@ -336,7 +336,7 @@
.YJ-custom-base-dialog>.content textarea {
font-size: 16px;
background-color: rgba(0, 0, 0, 0.5);
border: 1px solid rgba(var(--color-base1), 0.5);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
border-radius: 5px;
line-height: 32px;
height: 32px;
@ -351,13 +351,13 @@
}
.YJ-custom-base-dialog>.content input[type=checkbox]:read-only {
background-color: rgba(var(--color-base1), 0.2);
background-color: rgba(var(--color-sdk-base-rgb), 0.2);
}
.YJ-custom-base-dialog>.content input:focus-visible,
.YJ-custom-base-dialog>.content textarea:focus-visible {
outline: none;
border-color: rgba(var(--color-base1), 0.8);
border-color: rgba(var(--color-sdk-base-rgb), 0.8);
}
.YJ-custom-base-dialog>.content select:focus-visible {
@ -366,7 +366,7 @@
}
.YJ-custom-base-dialog>.content select {
background-color: rgba(var(--color-base1), 0.2);
background-color: rgba(var(--color-sdk-base-rgb), 0.2);
border: 1px solid rgba(0, 255, 255, 0);
border-radius: 5px;
line-height: 32px;
@ -455,14 +455,14 @@
background-color: #ffffff00;
color: #000;
overflow: hidden;
border: 1px solid rgba(var(--color-base1), 0.5);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
}
.YJ-custom-base-dialog>.content .table input {}
.YJ-custom-base-dialog>.content .table .tr {
display: flex;
border: 1px solid rgba(var(--color-base1), 0.5);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
border-right: none;
}
@ -543,19 +543,19 @@
.YJ-custom-base-dialog>.content *::-webkit-scrollbar-thumb {
border-radius: 5px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
background-color: rgba(var(--color-base1));
background-color: rgba(var(--color-sdk-base-rgb));
}
.YJ-custom-base-dialog>.content *::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 5px;
background-color: rgba(var(--color-base1), 0.1);
background-color: rgba(var(--color-sdk-base-rgb), 0.1);
}
.YJ-custom-base-dialog>.content .table .tr .th,
.YJ-custom-base-dialog>.content .table .tr .td {
flex: 1;
border-right: 1px solid rgba(var(--color-base1), 0.5);
border-right: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
padding: 5px 10px;
display: flex;
align-items: center;
@ -584,6 +584,71 @@
border-right: none;
}
<<<<<<< Updated upstream
=======
.YJ-custom-base-dialog>.content .table.camera-table {
overflow-x: auto;
}
.YJ-custom-base-dialog>.content .table.isc-table {
overflow: hidden;
}
.YJ-custom-base-dialog>.content .table.camera-table .tr {
display: inline-flex;
}
.YJ-custom-base-dialog>.content .table.isc-table .tr {
display: flex;
}
.YJ-custom-base-dialog>.content .table.camera-table .tr:last-child,
.YJ-custom-base-dialog>.content .table.isc-table .tr:last-child {
border-bottom: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
}
.YJ-custom-base-dialog>.content .table.camera-table .tr .td span,
.YJ-custom-base-dialog>.content .table.isc-table .tr .td span {
white-space: nowrap;
margin-left: 10px;
}
.YJ-custom-base-dialog>.content .table.camera-table .tr .td input[type=checkbox],
.YJ-custom-base-dialog>.content .table.isc-table .tr .td input[type=checkbox] {
cursor: pointer;
}
.YJ-custom-base-dialog>.content .table.camera-table .table-body,
.YJ-custom-base-dialog>.content .table.isc-table .table-body {
display: inline-flex;
flex-direction: column;
height: 186px;
width: auto;
}
.YJ-custom-base-dialog>.content .table.camera-table .tr .th,
.YJ-custom-base-dialog>.content .table.camera-table .tr .td {
flex: 0 100px;
width: 100px;
min-width: 100px;
}
.YJ-custom-base-dialog>.content .table.isc-table .tr .th,
.YJ-custom-base-dialog>.content .table.isc-table .tr .td {
flex: 1;
width: auto;
min-width: auto;
}
.YJ-custom-base-dialog>.content .table.camera-table .tr .th:first-child,
.YJ-custom-base-dialog>.content .table.camera-table .tr .td:first-child,
.YJ-custom-base-dialog>.content .table.isc-table .tr .th:first-child,
.YJ-custom-base-dialog>.content .table.isc-table .tr .td:first-child {
flex: 0 74px;
min-width: 74px;
}
>>>>>>> Stashed changes
.YJ-custom-base-dialog>.content select>option {
color: #000;
}
@ -593,7 +658,7 @@
height: 6px;
border: 0;
margin-top: 20px;
background: rgba(var(--color-base1), 0.2);
background: rgba(var(--color-sdk-base-rgb), 0.2);
-webkit-appearance: none;
} */
.YJ-custom-base-dialog>.content [type="range"] {
@ -610,7 +675,7 @@
.YJ-custom-base-dialog>.content [type="range"]::-webkit-slider-runnable-track {
height: 6px;
background: rgba(var(--color-base1), 0.2);
background: rgba(var(--color-sdk-base-rgb), 0.2);
}
.YJ-custom-base-dialog>.content [type="range" i]::-webkit-slider-container {
@ -624,10 +689,10 @@
width: 20px;
height: 20px;
border-radius: 50%;
background-color: rgba(var(--color-base1), 1);
border: 1px solid rgba(var(--color-base1), 1);
background-color: rgba(var(--color-sdk-base-rgb), 1);
border: 1px solid rgba(var(--color-sdk-base-rgb), 1);
margin-top: -7px;
border-image: linear-gradient(rgba(var(--color-base1), 1), rgba(var(--color-base1), 1)) 0 fill / 8 20 8 0 / 0px 0px 0 2000px;
border-image: linear-gradient(rgba(var(--color-sdk-base-rgb), 1), rgba(var(--color-sdk-base-rgb), 1)) 0 fill / 8 20 8 0 / 0px 0px 0 2000px;
}
@ -658,12 +723,11 @@
font-weight: 700;
font-family: 'D-Din-Bold';
font-size: 18px; */
font-family: 'ddin';
font-size: 18px;
font-size: 12px;
font-weight: 400;
letter-spacing: 0px;
line-height: 24px;
color: rgb(255, 255, 255);
color: rgba(204, 204, 204, 1);
text-align: left;
vertical-align: top;
}
@ -702,15 +766,6 @@
margin-right: -15px;
}
.YJ-custom-base-dialog>.content .input-number-unit input[type=number] {
padding: 0 16px 0 10px;
}
.YJ-custom-base-dialog>.content .input-number-unit input[type=number]::-webkit-outer-spin-button,
.YJ-custom-base-dialog>.content .input-number-unit input[type=number]::-webkit-inner-spin-button {
margin-left: 5px;
margin-right: -12px;
}
.YJ-custom-base-dialog>.content .input-number-unit-1 input[type=number] {
padding: 0 26px 0 10px;
}
@ -827,11 +882,11 @@
}
.fly-roam>.content .table .table-body .tr.active {
background: rgba(var(--color-base1), 0.15);
background: rgba(var(--color-sdk-base-rgb), 0.15);
}
.fly-roam>.content .table .table-body .tr:last-child {
border: 1px solid rgba(var(--color-base1), 0.5);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
border-left: none;
border-right: none;
}
@ -846,7 +901,7 @@
cursor: no-drop;
}
.YJ-custom-base-dialog>.content .fly-roam .table .table-body .tr:last-child .play:hover {
border-color: rgba(var(--color-base1), 0.5) !important;
border-color: rgba(var(--color-sdk-base-rgb), 0.5) !important;
} */
.fly-roam>.content .table .action {
@ -976,7 +1031,7 @@
margin-top: 1px;
font-size: 14px;
background-color: rgba(0, 0, 0, 0.5);
border: 1px solid rgba(var(--color-base1), 0.5);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
border-radius: 5px;
line-height: 32px;
height: 32px;
@ -1003,7 +1058,7 @@
}
.YJ-custom-base-dialog .ew-color-picker .icon-pen-box:hover .icon-pen {
fill: rgba(var(--color-base1), 1);
fill: rgba(var(--color-sdk-base-rgb), 1);
margin: 0;
}
@ -1065,14 +1120,14 @@
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color.add,
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color.subtract {
border-color: rgba(var(--color-base1), 0.2);
border-color: rgba(var(--color-sdk-base-rgb), 0.2);
background: unset;
line-height: 22px;
}
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color.add:hover,
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container>.yj-pre-collect-color.subtract:hover {
border-color: rgba(var(--color-base1), 0.4);
border-color: rgba(var(--color-sdk-base-rgb), 0.4);
}
.YJ-custom-base-dialog .ew-color-picker>.yj-pre-collect-color-container svg,
@ -1356,13 +1411,13 @@
.DIV-cy-tabs .DIV-cy-tab-top::-webkit-scrollbar-thumb {
border-radius: 5px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
background-color: rgba(var(--color-base1));
background-color: rgba(var(--color-sdk-base-rgb));
}
.DIV-cy-tabs .DIV-cy-tab-top::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 5px;
background-color: rgba(var(--color-base1), 0.1);
background-color: rgba(var(--color-sdk-base-rgb), 0.1);
}
.DIV-cy-tabs .DIV-cy-tab-top::after {
@ -1385,11 +1440,11 @@
}
.DIV-cy-tabs .DIV-cy-tab-pane-title .DIV-cy-tab-pane-title-p:hover {
border-bottom-color: rgba(var(--color-base1));
border-bottom-color: rgba(var(--color-sdk-base-rgb));
}
.DIV-cy-tabs .DIV-cy-tab-pane-title .DIV-cy-tab-pane-title-p:hover span {
text-shadow: 0px 0px 9px var(--color-text-shadow);
text-shadow: 0px 0px 9px var(--color-sdk-text-shadow);
}
.DIV-cy-tabs .DIV-cy-tab-pane-title:first-child {
@ -1426,11 +1481,11 @@
}
.DIV-cy-tabs .DIV-cy-tab-pane-title-p.is-active {
border-bottom-color: rgba(var(--color-base1));
border-bottom-color: rgba(var(--color-sdk-base-rgb));
}
.DIV-cy-tabs .DIV-cy-tab-pane-title-p.is-active span {
text-shadow: 0px 0px 9px var(--color-text-shadow);
text-shadow: 0px 0px 9px var(--color-sdk-text-shadow);
}
/* 开关按钮样式 */
@ -1441,8 +1496,8 @@
height: 20px;
padding: 0;
position: relative;
border: 1px solid rgba(var(--color-base1), 0.2);
background-color: rgba(var(--color-base1), 0.2);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.2);
background-color: rgba(var(--color-sdk-base-rgb), 0.2);
border-radius: 20px;
background-clip: content-box;
display: inline-block;
@ -1466,9 +1521,9 @@
.YJ-custom-base-dialog>.content .btn-switch:checked,
.YJ-custom-base-dialog>.foot .btn-switch:checked {
border-color: rgba(var(--color-base1), 1);
box-shadow: rgba(var(--color-base1)) 0 0 0 16px inset;
background-color: rgba(var(--color-base1));
border-color: rgba(var(--color-sdk-base-rgb), 1);
box-shadow: rgba(var(--color-sdk-base-rgb)) 0 0 0 16px inset;
background-color: rgba(var(--color-sdk-base-rgb));
}
.YJ-custom-base-dialog>.content .btn-switch:checked:before,
@ -1620,12 +1675,12 @@
.YJ-custom-base-dialog>.content .cy_datalist input.datalist {
border-color: #00000000;
background-color: rgba(var(--color-base1), 0.2) !important;
background-color: rgba(var(--color-sdk-base-rgb), 0.2) !important;
}
.YJ-custom-base-dialog>.content .cy_datalist dl {
min-width: 100%;
border-color: rgba(var(--color-base1), 0.5);
border-color: rgba(var(--color-sdk-base-rgb), 0.5);
}
.YJ-custom-base-dialog>.content .cy_datalist dl dd {
@ -1638,17 +1693,17 @@
}
.YJ-custom-base-dialog>.content .cy_datalist dl dd:hover {
background-color: rgba(var(--color-base1), 0.2);
background-color: rgba(var(--color-sdk-base-rgb), 0.2);
color: white;
}
.YJ-custom-base-dialog>.content .cy_datalist dl dd.active {
color: rgba(var(--color-base1)) !important;
/* background-color: rgba(var(--color-base1), 0.2); */
color: rgba(var(--color-sdk-base-rgb)) !important;
/* background-color: rgba(var(--color-sdk-base-rgb), 0.2); */
}
.YJ-custom-base-dialog>.content .cy_datalist dl dd.active svg {
fill: rgba(var(--color-base1))
fill: rgba(var(--color-sdk-base-rgb))
}
.YJ-custom-base-dialog>.content .cy_datalist dl dd.active::before {
@ -1656,8 +1711,8 @@
display: inline-block;
width: 8px;
height: 4px;
border-bottom: 2px solid rgba(var(--color-base1));
border-left: 2px solid rgba(var(--color-base1));
border-bottom: 2px solid rgba(var(--color-sdk-base-rgb));
border-left: 2px solid rgba(var(--color-sdk-base-rgb));
transform: rotate(-45deg);
position: absolute;
right: 6px;
@ -1680,6 +1735,61 @@
top: 10px;
}
<<<<<<< Updated upstream
=======
/* 点标注 */
.YJ-custom-base-dialog.billboard-object>.content {
width: 590px;
}
.YJ-custom-base-dialog.billboard-object>.content button.primary {
padding: 6px 14px;
}
.YJ-custom-base-dialog.billboard-object>.content>div .row .col {
margin: 0 10px;
}
.YJ-custom-base-dialog.billboard-object>.content>div .row .col:first-child {
margin-left: 0;
}
.YJ-custom-base-dialog.billboard-object>.content>div .row .col:last-child {
margin-right: 0;
}
.YJ-custom-base-dialog.billboard-object>.content>div .row .label {
flex: 0 0 56px;
white-space: nowrap;
}
.YJ-custom-base-dialog.billboard-object>.content .DIV-cy-tab-content-pane .input-select {
width: 100px;
}
.YJ-custom-base-dialog.billboard-object>.content .DIV-cy-tab-content-pane h4 {
font-size: 16px;
margin-bottom: 10px;
}
.YJ-custom-base-dialog.billboard-object>.content div .image-box {
width: 23px;
height: 26px;
cursor: pointer;
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.2);
display: flex;
align-items: center;
justify-content: center;
}
.YJ-custom-base-dialog.billboard-object>.content div .image {
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
}
>>>>>>> Stashed changes
/* 富文本 */
.richText-box {
position: absolute;
@ -1801,13 +1911,13 @@
}
.YJ-custom-base-dialog.trajectory-motion>.content .btn.is-active {
border-color: rgba(var(--color-base1));
border-color: rgba(var(--color-sdk-base-rgb));
}
.YJ-custom-base-dialog.trajectory-motion>.content .btn-group .btn.is-active>span {
color: #fff;
font-size: 16px;
text-shadow: 0px 0px 9px var(--color-text-shadow);
text-shadow: 0px 0px 9px var(--color-sdk-text-shadow);
font-weight: 400;
}
@ -1888,7 +1998,7 @@
.YJ-custom-base-dialog.sun-shine-surface>.content>div .progress {
height: 100%;
width: 0;
background: rgba(var(--color-base1), 1);
background: rgba(var(--color-sdk-base-rgb), 1);
border-radius: 15px;
position: relative;
}
@ -1898,7 +2008,7 @@
height: 16px;
background: white;
/* border: 3px solid #4285f4; */
background: rgba(var(--color-base1), 1);
background: rgba(var(--color-sdk-base-rgb), 1);
border-radius: 50%;
position: absolute;
right: -8px;
@ -2114,7 +2224,7 @@
}
.YJ-custom-base-dialog.submerge>.content .table-body .tr:last-child {
border-bottom: 1px solid rgba(var(--color-base1), 0.5);
border-bottom: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
}
.YJ-custom-base-dialog.submerge>.content .table-empty {
@ -2190,7 +2300,7 @@
}
.YJ-custom-base-dialog.view-shed>.content .range-box .range-bg {
background: rgba(var(--color-base1), 0.2);
background: rgba(var(--color-sdk-base-rgb), 0.2);
height: 100%;
width: 100%;
mask: url(../img/range.svg);
@ -2212,7 +2322,7 @@
.YJ-custom-base-dialog.view-shed>.content .range-box .range-bg .range-process {
width: 0;
height: 100%;
background: rgba(var(--color-base1), 1);
background: rgba(var(--color-sdk-base-rgb), 1);
}
.YJ-custom-base-dialog.view-shed>.content .range-box .range-node-box {
@ -2258,7 +2368,7 @@
height: 20px;
background: #ffffff;
border-radius: 50%;
border: 2px solid rgba(var(--color-base1), 1);
border: 2px solid rgba(var(--color-sdk-base-rgb), 1);
}
.YJ-custom-base-dialog.view-shed>.content .range-box .range-node-box .range-node-active-text {
@ -2277,7 +2387,7 @@
.YJ-custom-base-dialog.view-shed>.content .range-box input[type="range"]::-webkit-slider-runnable-track {
height: 6px;
background: rgba(var(--color-base1), 0);
background: rgba(var(--color-sdk-base-rgb), 0);
}
.YJ-custom-base-dialog.view-shed>.content .range-box input[type="range"]::-webkit-slider-thumb {
@ -2286,10 +2396,10 @@
width: 20px;
height: 20px;
border-radius: 50%;
background-color: rgba(var(--color-base1), 0);
border: 1px solid rgba(var(--color-base1), 0);
background-color: rgba(var(--color-sdk-base-rgb), 0);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0);
margin-top: -7px;
border-image: linear-gradient(rgba(var(--color-base1), 0), rgba(var(--color-base1), 0)) 0 fill / 8 20 8 0 / 0px 0px 0 2000px;
border-image: linear-gradient(rgba(var(--color-sdk-base-rgb), 0), rgba(var(--color-sdk-base-rgb), 0)) 0 fill / 8 20 8 0 / 0px 0px 0 2000px;
}
/* 通视分析 */
@ -2332,7 +2442,7 @@
}
.el-slider {
--el-slider-main-bg-color: rgba(var(--color-base1), 1)
--el-slider-main-bg-color: rgba(var(--color-sdk-base-rgb), 1)
}
/* 地形可视域分析 */
@ -2563,11 +2673,6 @@
flex: 0 0 160px;
}
.YJ-custom-base-dialog>.content>div .spatial-info-table .table-body .td input[type=number] {
font-family: 'ddin';
font-size: 14px;
}
/* 集结地 */
.YJ-custom-base-dialog.assemble>.content {
width: 600px;
@ -2794,33 +2899,33 @@
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit .datalist {
background-color: rgba(var(--color-base1), 0.1) !important;
background-color: rgba(var(--color-sdk-base-rgb), 0.1) !important;
border-radius: 4px 0px 0px 4px !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(1) .datalist {
background-color: rgba(var(--color-base1), 0.1) !important;
background-color: rgba(var(--color-sdk-base-rgb), 0.1) !important;
border-radius: 4px 0px, 0px, 4px !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(2) .datalist {
background-color: rgba(var(--color-base1), 0.1) !important;
background-color: rgba(var(--color-sdk-base-rgb), 0.1) !important;
border-radius: 0px 4px 4px 0px !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(1) input {
border: 1px solid rgba(var(--color-base1), 0.5) !important;
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(2) input {
border: 1px solid rgba(var(--color-base1), 0.5) !important;
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
}
.YJ-custom-base-dialog.polyline>.content input.input-text {
background-color: rgba(0, 0, 0, 0.5) !important;
border-radius: unset !important;
border-top: 1px solid rgba(var(--color-base1), 0.5) !important;
border-bottom: 1px solid rgba(var(--color-base1), 0.5) !important;
border-top: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
border-bottom: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist input {
@ -2921,33 +3026,33 @@
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit .datalist {
background-color: rgba(var(--color-base1), 0.1) !important;
background-color: rgba(var(--color-sdk-base-rgb), 0.1) !important;
border-radius: 4px 0px 0px 4px !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(1) .datalist {
background-color: rgba(var(--color-base1), 0.1) !important;
background-color: rgba(var(--color-sdk-base-rgb), 0.1) !important;
border-radius: 4px 0px, 0px, 4px !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(2) .datalist {
background-color: rgba(var(--color-base1), 0.1) !important;
background-color: rgba(var(--color-sdk-base-rgb), 0.1) !important;
border-radius: 0px 4px 4px 0px !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(1) input {
border: 1px solid rgba(var(--color-base1), 0.5) !important;
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-unit:nth-of-type(2) input {
border: 1px solid rgba(var(--color-base1), 0.5) !important;
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
}
.YJ-custom-base-dialog.polyline>.content input.input-text {
background-color: rgba(0, 0, 0, 0.5) !important;
border-radius: unset !important;
border-top: 1px solid rgba(var(--color-base1), 0.5) !important;
border-bottom: 1px solid rgba(var(--color-base1), 0.5) !important;
border-top: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
border-bottom: 1px solid rgba(var(--color-sdk-base-rgb), 0.5) !important;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist input {
@ -2973,19 +3078,19 @@
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.line {
border: 1px solid rgba(var(--color-base1), 1);
border: 1px solid rgba(var(--color-sdk-base-rgb), 1);
height: 0px;
margin-top: 4px;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.dash-line {
border: 1px dashed rgba(var(--color-base1), 1);
border: 1px dashed rgba(var(--color-sdk-base-rgb), 1);
height: 0px;
margin-top: 4px;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.light-line {
border: 1px solid rgba(var(--color-base1), 1);
border: 1px solid rgba(var(--color-sdk-base-rgb), 1);
height: 0px;
margin-top: 4px;
box-shadow: 0 0 3px #fff
@ -3002,13 +3107,13 @@
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.flow-dash-line1 {
border: 1px dashed rgba(var(--color-base1), 1);
border: 1px dashed rgba(var(--color-sdk-base-rgb), 1);
height: 0px;
margin-top: 4px;
}
.YJ-custom-base-dialog.polyline>.content>div .input-select-line-type-box .cy_datalist i.flow-dash-line2 {
border: 1px dashed rgba(var(--color-base1), 1);
border: 1px dashed rgba(var(--color-sdk-base-rgb), 1);
height: 0px;
margin-top: 4px;
}
@ -3077,13 +3182,13 @@
.popup-textarea textarea::-webkit-scrollbar-thumb {
border-radius: 5px!important;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2)!important;
background-color: rgba(var(--color-base1))!important;
background-color: rgba(var(--color-sdk-base-rgb))!important;
}
.popup-textarea textarea::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2)!important;
border-radius: 5px!important;
background-color: rgba(var(--color-base1), 0.1)!important;
background-color: rgba(var(--color-sdk-base-rgb), 0.1)!important;
}
/* 贴地图片 */
@ -3156,19 +3261,19 @@
.YJ-custom-base-dialog.proj-convert>.content>div .top-line {
top: 5px;
border-radius: 0 4px 0 0;
border-top: 1px solid rgba(var(--color-base1), 0.5);
border-right: 1px solid rgba(var(--color-base1), 0.5);
border-top: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
border-right: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
}
.YJ-custom-base-dialog.proj-convert>.content>div .bottom-line {
bottom: 5px;
border-radius: 0 0 4px 0;
border-bottom: 1px solid rgba(var(--color-base1), 0.5);
border-right: 1px solid rgba(var(--color-base1), 0.5);
border-bottom: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
border-right: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
}
.YJ-custom-base-dialog.proj-convert>.content>div .icon-copy-box:hover .icon-copy {
fill: rgba(var(--color-base1));
fill: rgba(var(--color-sdk-base-rgb));
}
/* 高清截图 */
@ -3189,7 +3294,7 @@
.YJ-custom-base-dialog.screenShotHD>.content>div .progress {
width: 200px;
height: 6px;
background: rgba(var(--color-base1), 0.2);
background: rgba(var(--color-sdk-base-rgb), 0.2);
border-radius: 3px;
position: relative;
}
@ -3198,7 +3303,7 @@
width: 0%;
height: 6px;
border-radius: 3px;
background: rgba(var(--color-base1), 1);
background: rgba(var(--color-sdk-base-rgb), 1);
}
.YJ-custom-base-dialog.screenShotHD>.content>div .progress>.progress-text {
@ -3233,7 +3338,7 @@
}
.YJ-custom-base-dialog.screenShotHD>.content>div .range-box .range-bg {
background: rgba(var(--color-base1), 0.2);
background: rgba(var(--color-sdk-base-rgb), 0.2);
border-radius: 3px;
height: 100%;
width: 100%;
@ -3254,13 +3359,13 @@
.YJ-custom-base-dialog.screenShotHD>.content>div .range-box .range-bg .range-process {
width: 0;
height: 100%;
background: rgba(var(--color-base1), 1);
background: rgba(var(--color-sdk-base-rgb), 1);
}
.YJ-custom-base-dialog.screenShotHD>.content>div .range-box .range-bg .range-process {
width: 0;
height: 100%;
background: rgba(var(--color-base1), 1);
background: rgba(var(--color-sdk-base-rgb), 1);
}
.YJ-custom-base-dialog.screenShotHD>.content>div .range-box .range-node-box {
@ -3295,7 +3400,7 @@
height: 13px;
background: #ffffff;
border-radius: 50%;
border: 2px solid rgba(var(--color-base1), 1);
border: 2px solid rgba(var(--color-sdk-base-rgb), 1);
}
.YJ-custom-base-dialog.screenShotHD>.content>div .range-box .range-node-box .range-node-active-text {
@ -3314,7 +3419,7 @@
.YJ-custom-base-dialog.screenShotHD>.content>div .range-box input[type="range"]::-webkit-slider-runnable-track {
height: 6px;
background: rgba(var(--color-base1), 0);
background: rgba(var(--color-sdk-base-rgb), 0);
}
.YJ-custom-base-dialog.screenShotHD>.content>div .range-box input[type="range"]::-webkit-slider-thumb {
@ -3323,10 +3428,10 @@
width: 20px;
height: 20px;
border-radius: 50%;
background-color: rgba(var(--color-base1), 0);
border: 1px solid rgba(var(--color-base1), 0);
background-color: rgba(var(--color-sdk-base-rgb), 0);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0);
margin-top: -7px;
border-image: linear-gradient(rgba(var(--color-base1), 0), rgba(var(--color-base1), 0)) 0 fill / 8 20 8 0 / 0px 0px 0 2000px;
border-image: linear-gradient(rgba(var(--color-sdk-base-rgb), 0), rgba(var(--color-sdk-base-rgb), 0)) 0 fill / 8 20 8 0 / 0px 0px 0 2000px;
}
/* 地图打印 */
@ -3441,7 +3546,7 @@
flex: 0 0 25px;
padding: 0;
border-radius: 5px;
border: 1px solid rgba(var(--color-base1), 1);
border: 1px solid rgba(var(--color-sdk-base-rgb), 1);
-webkit-appearance: none;
vertical-align: middle;
background: rgba(0, 0, 0, 0.5);
@ -3462,7 +3567,7 @@
.YJ-custom-checkbox-left:checked::after,
.YJ-custom-checkbox-right:checked::after {
content: "✔";
background-color: rgba(var(--color-base1), 1);
background-color: rgba(var(--color-sdk-base-rgb), 1);
color: rgba(var(--color-sdk-auxiliary), 1);
width: 25px;
height: 25px;
@ -3477,7 +3582,7 @@
flex: 0 0 14px;
padding: 0;
border-radius: 2px;
border: 1px solid rgba(var(--color-base1), 1);
border: 1px solid rgba(var(--color-sdk-base-rgb), 1);
-webkit-appearance: none;
vertical-align: middle;
background-color: rgba(0, 0, 0, 0.5);
@ -3497,7 +3602,7 @@
.YJ-custom-base-dialog>.content input.YJ-custom-checkbox[type=checkbox]:checked::after {
content: "✔";
background-color: rgba(var(--color-base1), 1);
background-color: rgba(var(--color-sdk-base-rgb), 1);
color: rgba(var(--color-sdk-auxiliary), 1);
width: 12px;
height: 12px;
@ -3591,13 +3696,13 @@
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-content::-webkit-scrollbar-thumb {
border-radius: 5px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
background-color: rgba(var(--color-base1));
background-color: rgba(var(--color-sdk-base-rgb));
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-content::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 5px;
background-color: rgba(var(--color-base1), 0.1);
background-color: rgba(var(--color-sdk-base-rgb), 0.1);
}
.billboard-attribute-box .DIV-cy-tabs .DIV-cy-tab-content-pane {
@ -3612,8 +3717,8 @@
.billboard-attribute-box .billboard-attribute-box-line {
position: absolute;
width: 0px;
/* border-left: 1px solid rgba(var(--color-base1), 0.5); */
border-left: 1px solid rgba(var(--color-base1), 1);
/* border-left: 1px solid rgba(var(--color-sdk-base-rgb), 0.5); */
border-left: 1px solid rgba(var(--color-sdk-base-rgb), 1);
/* transform: rotate(45deg); */
transform-origin: 0px 0px;
-webkit-pointer-events: none;
@ -3661,7 +3766,7 @@
background-color: #ffffff00;
color: #ffffff;
overflow: hidden;
border: 1px solid rgba(var(--color-base1), 0.5);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
}
.billboard-attribute-box .table .table-head .tr {
@ -3672,11 +3777,11 @@
.billboard-attribute-box .table .tr {
display: flex;
border: 1px solid rgba(var(--color-base1), 0.5);
border: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
border-right: none;
}
.billboard-attribute-box .table .tr .th, .billboard-attribute-box .table .tr .td {
border-right: 1px solid rgba(var(--color-base1), 0.5);
border-right: 1px solid rgba(var(--color-sdk-base-rgb), 0.5);
display: flex;
justify-content: center;
}
@ -3726,8 +3831,8 @@
}
#YJ-custom-message.success {
/* background-color: #f0f9eb;
color: rgb(82, 196, 26); */
/* background-color: #f0f9eb; */
/* color: rgb(82, 196, 26); */
background:
linear-gradient(180deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
linear-gradient(0deg, rgba(27, 248, 195, 0.5) 0%, rgba(27, 248, 195, 0) 100%);

View File

@ -154,7 +154,7 @@ export default {
systemTitle: '系统面板',
authorize: '授权信息',
setting: '系统设置',
project: '工程信息',
project: '工程管理',
device: '设备管理',
materials: '物资管理',
modelManage: '模型管理',

View File

@ -153,7 +153,7 @@ export default {
systemTitle: '系統面板',
authorize: '授權信息',
setting: '系統設置',
project: '工程信息',
project: '工程管理',
device: '設備管理',
modelManage: '模型管理',
graphLabelManage: '軍標管理',

View File

@ -1,5 +1,5 @@
import {leftClick, rightClick} from '../../src/views/components/tree/entityClick'
import {renderVector} from '../views/components/tree/components/hooks/renderVector'
import { leftClick, rightClick } from '../../src/views/components/tree/entityClick'
import { renderVector } from '../views/components/tree/components/hooks/renderVector'
export const initMapData = async (type, data, cd) => {
let entityObject
@ -15,7 +15,9 @@ export const initMapData = async (type, data, cd) => {
case 'point':
case 'linkImage':
case 'vrImage':
console.log(data, 'dataccccc')
entityObject = new YJ.Obj.BillboardObject(window.earth, data)
console.log('entityObject', entityObject)
// entityObject.options.billboard.defaultImage = ''
break
case 'line':

View File

@ -202,7 +202,7 @@ const routeImport = () => {
filters: [
{
name: '路网', //、底图
extensions: ['pbf']
extensions: ['PBFL']
}
]
}
@ -229,7 +229,7 @@ const poiImport = () => {
filters: [
{
name: 'poi', //、底图
extensions: ['poi']
extensions: ['POIL']
}
]
}
@ -244,7 +244,6 @@ const poiImport = () => {
poiList.splice(0, poiList.length, ...list.data)
//只有一个poi时默认启用
if (poiList.length == 1) {
let formData = new FormData()
formData.append('id', poiList[0].id)
PoiApi.enablePoi(formData).then((res) => {
@ -312,7 +311,7 @@ const enablePoieData = (row) => {
.catch(() => {})
}
const delRouteData = (row) => {
ElMessageBox.confirm(`是否删除${row.name}数据?`, '提示', {
ElMessageBox.confirm(`是否删除${row.name}路网数据?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
@ -419,35 +418,43 @@ const handleError = (error: Error) => {
}
//工程合并导入
const mergeProject = () => {
let option = {
properties: ['openFile'],
filters: [
{
name: '路网', //、底图
extensions: ['zip']
ElMessageBox.confirm(`项目已存在,继续导入将合并项目,是否执行?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
let option = {
properties: ['openFile'],
filters: [
{
name: '路网', //、底图
extensions: ['zip']
}
]
}
]
}
$sendElectronChanel('open-directory-dialog', option)
$recvElectronChanel('selectedItem', (e, path) => {
if (path.length) {
let formData = new FormData()
formData.append('path', path[0])
PoiApi.importProjectConfig(formData).then((res) => {
if (res.code === 200) {
setTimeout(() => {
ElMessage({
message: '载入成功将在2s后自动重启',
type: 'success'
})
}, 1000)
setTimeout(() => {
$sendElectronChanel('restart')
}, 3000)
$sendElectronChanel('open-directory-dialog', option)
$recvElectronChanel('selectedItem', (e, path) => {
if (path.length) {
let formData = new FormData()
formData.append('path', path[0])
PoiApi.importProjectConfig(formData).then((res) => {
if (res.code === 200) {
setTimeout(() => {
ElMessage({
message: '载入成功将在2s后自动重启',
type: 'success'
})
}, 1000)
setTimeout(() => {
$sendElectronChanel('restart')
}, 3000)
}
})
}
})
}
})
})
.catch(() => {})
}
//工程导入(单机)
@ -455,50 +462,58 @@ const mergeProject = () => {
let importWin = false
const importProject = () => {
if (!importWin) {
importWin = true
let option = {
properties: ['openFile'],
filters: [{ name: '工程包', extensions: ['zip'] }]
}
$sendElectronChanel('open-directory-dialog', option)
$recvElectronChanel('selectedItem', (e, paths) => {
if (paths.length > 0) {
// let loadingInstance = this.$openLoading('拼命导入中...')
importWin = false
let arr = getElectronPath().replaceAll('\\', '/').split('/')
console.log(arr, 'arrarr')
arr.pop()
// let path: any = 'C:/Users/Administrator/AppData/Roaming/yjearth'
unzip_file(paths[0], arr.join('/'))
.then((res) => {
// loadingInstance.close()
// ElMessage({
// message: '导入成功',
// type: 'success'
// })
setTimeout(() => {
ElMessage({
message: '载入成功将在2s后自动重启',
type: 'success'
ElMessageBox.confirm(`项目已存在,继续导入将覆盖原有内容,是否执行?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
if (!importWin) {
importWin = true
let option = {
properties: ['openFile'],
filters: [{ name: '工程包', extensions: ['zip'] }]
}
$sendElectronChanel('open-directory-dialog', option)
$recvElectronChanel('selectedItem', (e, paths) => {
if (paths.length > 0) {
// let loadingInstance = this.$openLoading('拼命导入中...')
importWin = false
let arr = getElectronPath().replaceAll('\\', '/').split('/')
console.log(arr, 'arrarr')
arr.pop()
// let path: any = 'C:/Users/Administrator/AppData/Roaming/yjearth'
unzip_file(paths[0], arr.join('/'))
.then((res) => {
// loadingInstance.close()
// ElMessage({
// message: '导入成功',
// type: 'success'
// })
setTimeout(() => {
ElMessage({
message: '载入成功将在2s后自动重启',
type: 'success'
})
}, 1000)
setTimeout(() => {
$sendElectronChanel('restart')
}, 3000)
})
}, 1000)
setTimeout(() => {
$sendElectronChanel('restart')
}, 3000)
})
.catch((err) => {
console.log(err)
ElMessage({
message: err,
type: 'warning'
})
})
} else {
importWin = false
.catch((err) => {
console.log(err)
ElMessage({
message: err,
type: 'warning'
})
})
} else {
importWin = false
}
})
}
})
}
.catch(() => {})
}
// import Store from 'electron-store'

View File

@ -234,6 +234,7 @@ const attachUpload = async () => {
deviceApi.uploadSingle(params).then((res) => {
console.log(res, 'res')
ElMessage.success('导入成功')
getTableList()
})
}
})

View File

@ -237,8 +237,8 @@ var expandedKeys: any = ref([])
const getExpandedKeys = () => {
const nodesMap = treeRef.value?.store?.nodesMap || {}
return Object.values(nodesMap)
.filter((node:any) => node.expanded)
.map((node:any) => node.key)
.filter((node: any) => node.expanded)
.map((node: any) => node.key)
}
// 节点展开/折叠时更新状态
@ -302,10 +302,12 @@ const handleFileChange = (e: Event) => {
}
//创建模型库
const createModelDB = async () => {
let date = new Date().toISOString().split('T')[0]
let option = {
title: '创建军标库',
filename: 'YJEarth.junbiao',
filters: [{ name: '保存库文件', extensions: ['junbiao'] }]
// filename: 'YJEarth.junbiao',
filename: '军标库_' + date,
filters: [{ name: '保存库文件', extensions: ['MP'] }]
}
$sendElectronChanel('saveFile', option)
$recvElectronChanel('selectedFileItem', (e, path) => {
@ -330,7 +332,7 @@ const importModelDB = () => {
filters: [
{
name: '军标库', //、底图
extensions: ['junbiao']
extensions: ['MP']
}
]
}
@ -676,11 +678,15 @@ const getNamefromPath = (path) => {
}
const handleDelete = (row: any) => {
ElMessageBox.confirm('是否删除数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
ElMessageBox.confirm(
'删除军标将在系统中永久消失,且军标库和添加到场景展示区的数据也将删除,您确定要执行删除操作吗?',
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}
)
.then(() => {
let formData = new FormData()
formData.append('militaryId', row.id)
@ -872,11 +878,7 @@ onMounted(() => {
--el-messagebox-title-color: #fff !important;
--el-messagebox-content-color: #fff !important;
background:
linear-gradient(
180deg,
rgba(var(--color-base1), 0) 0%,
rgba(var(--color-base1), 0.2) 100%
),
linear-gradient(180deg, rgba(var(--color-base1), 0) 0%, rgba(var(--color-base1), 0.2) 100%),
rgba(0, 0, 0, 0.6) !important;
.el-message-box__btns {
.el-button {

View File

@ -160,7 +160,7 @@ var delFun = (row) => {
.then(() => {
// let formData = new FormData()
// formData.append('id', row.id)
MaterialApi.del({ id: row.id }).then((res) => {
MaterialApi.del([row.id]).then((res) => {
if (res.code === 200) {
ElMessage.success('删除成功')
getTableList()

View File

@ -256,8 +256,8 @@ var expandedKeys: any = ref([])
const getExpandedKeys = () => {
const nodesMap = treeRef.value?.store?.nodesMap || {}
return Object.values(nodesMap)
.filter((node:any) => node.expanded)
.map((node:any) => node.key)
.filter((node: any) => node.expanded)
.map((node: any) => node.key)
}
// 节点展开/折叠时更新状态
@ -327,15 +327,20 @@ const handleFileChange = (e: Event) => {
// 此处可添加文件验证或预处理逻辑
}
}
//创建模型库
const createModelDB = async () => {
let date = new Date().toISOString().split('T')[0]
console.log(date, 'datedatedatedate')
let option = {
title: '创建模型库',
filename: 'YJEarth.model',
filters: [{ name: '保存库文件', extensions: ['model'] }]
// filename: 'YJEarth.model',
filename: '模型库_' + date,
filters: [{ name: '保存库文件', extensions: ['ML'] }]
}
$sendElectronChanel('saveFile', option)
$recvElectronChanel('selectedFileItem', (e, path) => {
console.log(path, 'klklkllllk')
if (path) {
let index = path.lastIndexOf('/')
let model_lib_path = path.slice(0, index)
@ -357,7 +362,7 @@ const importModelDB = () => {
filters: [
{
name: '模型库', //、底图
extensions: ['model']
extensions: ['ML']
}
]
}
@ -705,11 +710,15 @@ const getNamefromPath = (path) => {
}
const handleDelete = (row: ModelItem) => {
ElMessageBox.confirm('是否删除数据?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
ElMessageBox.confirm(
'删除模型将在系统中永久消失,且模型库和添加到场景展示区的数据也将删除,您确定要执行删除操作吗?',
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}
)
.then(() => {
let formData = new FormData()
formData.append('modelId', row.id)

View File

@ -24,7 +24,14 @@
<span>创建图标库</span>
</el-button>
</div>
<el-input
v-model="photoName"
style="max-width: 150px"
placeholder="请输入图标名称进行搜索"
class="input-with-select"
:suffix-icon="Search"
>
</el-input>
<!-- <div class="typeBut">
<span
v-for="(item, index) in butList"
@ -59,6 +66,7 @@
@node-drag-over="handleDragOver"
@node-drag-end="handleDragEnd"
@node-drop="handleDrop"
:filter-node-method="filterNode"
>
<template #default="{ node, data }">
<!-- <span> {{ node.label }}</span> -->
@ -175,6 +183,7 @@
</template>
<script lang="ts" setup>
import { Search } from '@element-plus/icons-vue'
import { ref, reactive, onMounted, nextTick } from 'vue'
import type { TableColumnCtx } from 'element-plus'
import contextMenuCom from './contentMenu.vue'
@ -239,8 +248,20 @@ var expandedKeys: any = ref([])
const getExpandedKeys = () => {
const nodesMap = treeRef.value?.store?.nodesMap || {}
return Object.values(nodesMap)
.filter((node:any) => node.expanded)
.map((node:any) => node.key)
.filter((node: any) => node.expanded)
.map((node: any) => node.key)
}
var photoName = ref(null)
watch(photoName, (val) => {
if (treeRef.value && treeRef.value !== '') {
treeRef.value!.filter(val)
}
})
const filterNode: any = (value, data) => {
if (!value) return true
return data.label.includes(value)
}
// 节点展开/折叠时更新状态
@ -387,10 +408,12 @@ const handleFileChange = (e: Event) => {
}
//创建模型库
const createModelDB = async () => {
let date = new Date().toISOString().split('T')[0]
let option = {
title: '创建图标库',
filename: 'YJEarth.tubiao',
filters: [{ name: '保存库文件', extensions: ['tubiao'] }]
// filename: 'YJEarth.tubiao',
filename: '图标库_' + date,
filters: [{ name: '保存库文件', extensions: ['TL'] }]
}
$sendElectronChanel('saveFile', option)
$recvElectronChanel('selectedFileItem', (e, path) => {
@ -415,7 +438,7 @@ const importModelDB = () => {
filters: [
{
name: '图标库', //、底图
extensions: ['tubiao']
extensions: ['TL']
}
]
}
@ -781,11 +804,15 @@ const getNamefromPath = (path) => {
}
const handleDelete = (row: any) => {
ElMessageBox.confirm('是否删除数据?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
ElMessageBox.confirm(
'删除图标将在系统中永久消失,且图标库和添加到场景展示区的数据也将删除,您确定要执行删除操作吗?',
'警告',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}
)
.then(() => {
let formData = new FormData()
formData.append('iconId', row.id)
@ -986,7 +1013,8 @@ onMounted(() => {
--el-input-focus-border-color: rgba(var(--color-base1), 0.5) !important;
}
::v-deep .el-input__wrapper {
background-color: rgba(0, 0, 0, 0.5) !important;
/* background-color: rgba(0, 0, 0, 0.5) !important; */
background-color: unset !important;
}
::v-deep .el-dialog__title {
text-shadow: 0px 0px 9px var(--color-sdk-text-shadow) !important;

View File

@ -1,48 +1,103 @@
<template>
<div class="leftSideSecond">
<svg class="leftSideSecond_bg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="244" height="310.1533203125" viewBox="0 0 244 310.1533203125" fill="none" preserveAspectRatio="none">
<svg
class="leftSideSecond_bg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="244"
height="310.1533203125"
viewBox="0 0 244 310.1533203125"
fill="none"
preserveAspectRatio="none"
>
<foreignObject x="-5" y="-4.8466796875" width="254" height="320">
<div xmlns="http://www.w3.org/1999/xhtml"
style="backdrop-filter:blur(5px);clip-path:url(#bgblur_244_310_10_clip_path);height:100%;width:100%"></div>
<div
xmlns="http://www.w3.org/1999/xhtml"
style="
backdrop-filter: blur(5px);
clip-path: url(#bgblur_244_310_10_clip_path);
height: 100%;
width: 100%;
"
></div>
</foreignObject>
<path fill="#000000" fill-opacity="0.5"
d="M232.01 310.153L244 297.278L244 0.15332L0 0.15332L0 310.153L232.01 310.153Z" />
<path fill="url(#linear_fill_730_213_1)"
d="M232.01 310.153L244 297.278L244 0.15332L0 0.15332L0 310.153L232.01 310.153Z" />
<path
fill="#000000"
fill-opacity="0.5"
d="M232.01 310.153L244 297.278L244 0.15332L0 0.15332L0 310.153L232.01 310.153Z"
/>
<path
fill="url(#linear_fill_730_213_1)"
d="M232.01 310.153L244 297.278L244 0.15332L0 0.15332L0 310.153L232.01 310.153Z"
/>
<foreignObject x="-5" y="-5" width="32" height="32">
<div xmlns="http://www.w3.org/1999/xhtml"
style="backdrop-filter:blur(5px);clip-path:url(#bgblur_22_22_10_clip_path);height:100%;width:100%"></div>
<div
xmlns="http://www.w3.org/1999/xhtml"
style="
backdrop-filter: blur(5px);
clip-path: url(#bgblur_22_22_10_clip_path);
height: 100%;
width: 100%;
"
></div>
</foreignObject>
<foreignObject x="202" y="271.1533203125" width="47" height="43.99951171875">
<div xmlns="http://www.w3.org/1999/xhtml"
style="backdrop-filter:blur(5px);clip-path:url(#bgblur_37_33.99951171875_10_clip_path);height:100%;width:100%">
</div>
<div
xmlns="http://www.w3.org/1999/xhtml"
style="
backdrop-filter: blur(5px);
clip-path: url(#bgblur_37_33.99951171875_10_clip_path);
height: 100%;
width: 100%;
"
></div>
</foreignObject>
<path fill-rule="evenodd" fill="url(#linear_border_2035_2214_0)"
d="M232.01 310.153L0 310.153L0 0.15332L244 0.15332L244 297.278L232.01 310.153ZM242.5 296.688L242.5 1.65332L1.5 1.65332L1.5 308.653L231.357 308.653L242.5 296.688Z" />
<path
fill-rule="evenodd"
fill="url(#linear_border_2035_2214_0)"
d="M232.01 310.153L0 310.153L0 0.15332L244 0.15332L244 297.278L232.01 310.153ZM242.5 296.688L242.5 1.65332L1.5 1.65332L1.5 308.653L231.357 308.653L242.5 296.688Z"
/>
<path d="M0 0L0 22L22 0L0 0Z" fill="rgb(var(--color-base1))" fill-opacity="0.2" />
<defs>
<clipPath id="bgblur_22_22_10_clip_path" transform="translate(5 5)">
<path d="M0 0L0 22L22 0L0 0Z" />
</clipPath>
</defs>
<path d="M244 276.153L244 297.304L232 310.153L207 310.153L244 276.153Z" fill="rgb(var(--color-base1))"
fill-opacity="0.2" />
<path
d="M244 276.153L244 297.304L232 310.153L207 310.153L244 276.153Z"
fill="rgb(var(--color-base1))"
fill-opacity="0.2"
/>
<defs>
<clipPath id="bgblur_37_33.99951171875_10_clip_path" transform="translate(-202 -271.1533203125)">
<clipPath
id="bgblur_37_33.99951171875_10_clip_path"
transform="translate(-202 -271.1533203125)"
>
<path d="M244 276.153L244 297.304L232 310.153L207 310.153L244 276.153Z" />
</clipPath>
</defs>
<path d="M12 3L3 3L3 12L12 3Z" stroke="rgba(var(--color-base2), 1)" stroke-width="1" />
<defs>
<linearGradient id="linear_fill_730_213_1" x1="127.20458984375" y1="310.1533203125" x2="127.203857421875"
y2="0.1533203125" gradientUnits="userSpaceOnUse">
<linearGradient
id="linear_fill_730_213_1"
x1="127.20458984375"
y1="310.1533203125"
x2="127.203857421875"
y2="0.1533203125"
gradientUnits="userSpaceOnUse"
>
<stop offset="0" stop-color="rgb(var(--color-base1))" stop-opacity="0.3" />
<stop offset="1" stop-color="rgb(var(--color-base2))" stop-opacity="0" />
</linearGradient>
<linearGradient xmlns="http://www.w3.org/2000/svg" id="linear_border_2035_2214_0" x1="0" y1="-10.0346360206604"
x2="211.1868896484375" y2="231.8046417236328" gradientUnits="userSpaceOnUse">
<linearGradient
xmlns="http://www.w3.org/2000/svg"
id="linear_border_2035_2214_0"
x1="0"
y1="-10.0346360206604"
x2="211.1868896484375"
y2="231.8046417236328"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.0625" stop-color="rgb(var(--color-base1))" />
<stop offset="1" stop-color="var(--color-border1)" />
</linearGradient>
@ -55,8 +110,8 @@
style="color: rgb(255, 0, 0)" alt="" /> -->
<svg-icon :name="value" :size="20" color="rgba(var(--color-base2), 1)"></svg-icon>
<span :style="{ color: !clickChange[value] ? 'var(--color-text)' : 'rgb(255,0,0)' }">{{
t(`${obj.key}.${value}`)
}}</span>
t(`${obj.key}.${value}`)
}}</span>
</div>
</template>
</div>
@ -619,6 +674,10 @@ const methodMap = {
//鼠标定位
mouseLocation() {
clickChange.mouseLocation = !clickChange.mouseLocation
ElMessage({
message: '按下键盘ESC键可快速退出',
type: 'warning'
})
new YJ.Global.MouseCoordinate(window.earth, clickChange.mouseLocation)
// if (clickChange.mouseLocation) {
@ -653,7 +712,7 @@ const methodMap = {
filters: [{ name: '保存图片', extensions: ['jpg'] }]
})
$recvElectronChanel('selectedFileItem', (e, path) => {
fs.writeFile(path, dataBuffer, (res) => { })
fs.writeFile(path, dataBuffer, (res) => {})
})
}
@ -787,11 +846,11 @@ const methodMap = {
TreeApi.addOtherSource(paramsData)
paramsData.isShow = true
paramsData.params = JSON.stringify(paramsData.params)
; (window as any).pressModelMap.set(id + '_' + selectedNode.id, paramsData)
; (window as any).pressModelEntities.set(id, flat)
;(window as any).pressModelMap.set(id + '_' + selectedNode.id, paramsData)
;(window as any).pressModelEntities.set(id, flat)
cusAddNodes(window.treeObj, paramsData.parentId, [paramsData])
// //鼠标右键点击事件
flat.onRightClick = () => { }
flat.onRightClick = () => {}
// _entityMap.set(node.source_id, flat)
} else {
// this.$message.warning('至少三个点')
@ -922,7 +981,7 @@ const methodMap = {
DbOption.params = JSON.stringify(DbOption.params)
cusAddNodes(window.treeObj, DbOption.parentId, [DbOption])
let entityObject = renderVector(DbOption, true)
; (window as any)._entityMap.set(id, entityObject)
;(window as any)._entityMap.set(id, entityObject)
// }
// })
}
@ -970,7 +1029,7 @@ defineExpose({
// background-size: 100% 100%;
padding: 13px 6px 13px 6px;
>.leftSideSecond_bg {
> .leftSideSecond_bg {
width: 100%;
height: 100%;
position: absolute;

View File

@ -9,7 +9,76 @@
:closeCallback="closeCallBack"
>
<template #content>
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<span class="custom-divider"></span>
<div class="div-item">
<div class="row">
<div class="col">
<span class="label" style="flex: unset">{{ t('systemSetting.coordinateSystem') }}</span>
<el-select style="width: 175px" v-model="coordinate" @change="sysChange">
<div
class="group-header"
:class="isHotGroupOpen ? 'arrowActive' : ''"
@click="toggleGroup('hot')"
>
地理坐标系
<svg-icon
v-if="isHotGroupOpen"
name="arrow2"
:size="10"
color="rgba(0, 255, 255, 1)"
style="margin-left: 10px"
></svg-icon>
<svg-icon
v-else
name="arrow1"
:size="10"
color="rgba(255, 255, 255, 1)"
style="margin-left: 10px"
></svg-icon>
</div>
<div v-show="isHotGroupOpen">
<el-option
v-for="item in name_map1"
:key="item.epsg"
:label="item.name"
:value="item.epsg"
></el-option>
</div>
<div
class="group-header"
:class="isHotGroupOpen2 ? 'arrowActive' : ''"
@click="toggleGroup('ty')"
>
投影坐标系
<svg-icon
v-if="isHotGroupOpen2"
name="arrow2"
:size="10"
color="rgba(0, 255, 255, 1)"
style="margin-left: 10px"
></svg-icon>
<svg-icon
v-else
name="arrow1"
:size="10"
color="rgba(255, 255, 255, 1)"
style="margin-left: 10px"
></svg-icon>
</div>
<div v-show="isHotGroupOpen2">
<el-option
v-for="item in name_map2"
:key="item.epsg"
:label="item.name"
:value="item.epsg"
></el-option>
</div>
</el-select>
</div>
<div class="col"></div>
</div>
</div>
<el-tabs v-if="showPosiType" v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="小数格式" name="first">
<span class="custom-divider"></span>
<div class="div-item">
@ -45,6 +114,7 @@
<div class="col"></div>
</div>
</div>
<span class="custom-divider"></span>
</el-tab-pane>
<el-tab-pane label="度分格式" name="second">
<span class="custom-divider"></span>
@ -77,6 +147,7 @@
<div class="col"></div>
</div>
</div>
<span class="custom-divider"></span>
</el-tab-pane>
<el-tab-pane label="度分秒格式" name="third">
<span class="custom-divider"></span>
@ -113,8 +184,46 @@
<div class="col"></div>
</div>
</div>
<span class="custom-divider"></span>
</el-tab-pane>
</el-tabs>
<div v-if="!showPosiType" class="other">
<span class="custom-divider"></span>
<div class="div-item">
<div class="row">
<div class="col" style="flex: 0 0 58%">
<span class="label">X</span>
<input
class="input"
type="number"
placeholder="请输入坐标点X数值"
v-model="longitude"
/>
</div>
<div class="col"></div>
</div>
<div class="row">
<div class="col" style="flex: 0 0 58%">
<span class="label">Y</span>
<input
class="input"
type="number"
placeholder="请输入坐标点Y数值"
v-model="latitude"
/>
</div>
<div class="col"></div>
</div>
<div class="row">
<div class="col">
<span class="label">定位</span>
<button @click="flyto"><svg-icon name="location" :size="12" />跳转</button>
</div>
<div class="col"></div>
</div>
</div>
<span class="custom-divider"></span>
</div>
</template>
<template #footer>
<button @click="draw">保存</button>
@ -126,9 +235,18 @@
<script setup lang="ts">
import { ref, onBeforeUnmount } from 'vue'
import { inject } from 'vue'
import { useI18n } from 'vue-i18n'
import Dialog from '@/components/dialog/baseDialog.vue'
import { addMapSource } from '../../../common/addMapSource'
import { initMapData } from '@/common/initMapData'
import { sysChange as utilsSysChange } from '@/utils/sysChange'
const { ipcRenderer } = require('electron')
const availablePort = ref(55110)
ipcRenderer.invoke('get-available-port').then((port) => {
availablePort.value = port
})
const { t } = useI18n()
const baseDialog: any = ref(null)
const eventBus: any = inject('bus')
@ -145,6 +263,58 @@ var lngSec = ref(null)
var latSec = ref(null)
var id = ref(null)
var coordinate: any = ref('EPSG:4326')
var isHotGroupOpen: any = ref(true)
var isHotGroupOpen2: any = ref(false)
var showPosiType: any = ref(true)
var name_map1: any = ref([])
var name_map2: any = ref([
{
epsg: 'EPSG:32601',
name: 'WGS84 通用横轴墨卡托投影'
},
{
epsg: 'EPSG:4534',
name: '2000 坐标 3 度不带代号'
},
{
epsg: 'EPSG:4513',
name: '2000 坐标 3 度带代号'
},
{
epsg: 'EPSG:4502',
name: '2000 坐标 6 度不带代号'
},
{
epsg: 'EPSG:4491',
name: '2000 坐标 6 度带代号'
}
])
//系统坐标系
let tool = new YJ.Tools(window.earth)
let mapData = Array.from(tool.name_map.values())
name_map1.value = mapData.splice(0, 2)
const sysChange = async () => {
//系统
if (coordinate.value) {
let data = name_map1.value.filter((item) => item.epsg === coordinate.value)
showPosiType.value = data.length
}
longitude.value = null
latitude.value = null
lngMin.value = null
latMin.value = null
lngSec.value = null
latSec.value = null
}
const toggleGroup = (type: string) => {
if (type === 'hot') isHotGroupOpen.value = !isHotGroupOpen.value
if (type === 'ty') isHotGroupOpen2.value = !isHotGroupOpen2.value
}
eventBus.on('coorLocationDialog', () => {
id.value = new YJ.Tools().randomString()
baseDialog.value?.open()
@ -171,6 +341,11 @@ const closeCallBack = (e) => {
lngSec.value = null
latSec.value = null
activeName.value = 'first'
coordinate.value = 'EPSG:4326'
isHotGroupOpen.value = true
isHotGroupOpen2.value = false
showPosiType.value = true
}
onBeforeUnmount(() => {
closeCallBack('')
@ -236,87 +411,103 @@ const turnToPosition = async () => {
}
return position
}
const getPosition = async () => {
if (showPosiType.value) {
pointPosi = await turnToPosition()
} else {
let posi
switch (coordinate.value) {
case 'EPSG:32601':
posi = new YJ.Tools().mercatorToWGS84(longitude.value, latitude.value)
break
case 'EPSG:4534':
posi = new YJ.Tools().convertCGCStoWGS84(longitude.value, latitude.value, 120)
break
case 'EPSG:4513':
posi = new YJ.Tools().convertCGCSToWGS84WithZone(longitude.value, latitude.value)
break
case 'EPSG:4502':
posi = new YJ.Tools().convertCGCS2000_6ToWGS84(longitude.value, latitude.value, 120)
break
case 'EPSG:4491':
posi = new YJ.Tools().convertCGCS2000_6ToWGS84WithZone(longitude.value, latitude.value)
break
default:
break
}
pointPosi = {
lng: posi[0],
lat: posi[1],
alt: 0
}
}
}
const flyto = async (e) => {
let position = await turnToPosition()
await getPosition()
if ((!pointPosi.lng && pointPosi.lng !== 0) || (!pointPosi.lat && pointPosi.lng !== 0)) {
ElMessage({
message: '请正确填写坐标信息!',
type: 'warning'
})
return
}
new YJ.Global.flyTo(window.earth, {
position: { lng: position.lng, lat: position.lat, alt: position.alt + 100 }
position: { lng: pointPosi.lng, lat: pointPosi.lat, alt: pointPosi.alt + 100 }
})
let name = '点标注'
let params = {
type: 'point',
id: id.value,
sourceName: name,
opt: {
id: id.value,
name: name,
position: position
position: pointPosi,
name: name,
billboard: {
show: true,
image:
YJ.Global.getBillboardDefaultUrl() ||
'http://localhost:' + availablePort.value + '/' + 'GEMarker1/A-ablu-blank.png'
}
}
if (!window.earth.entityMap.get(id.value)) {
await initMapData('point', params, null)
if (window.earth.entityMap.get(id.value)) {
window.earth.entityMap.get(id.value).remove()
}
// switch (activeName.value) {
// case 'first':
// new YJ.Global.flyTo(window.earth, {
// position: { lng: longitude.value, lat: latitude.value, alt: 100 }
// })
// break
// case 'second':
// // @ts-ignore (define in dts)
// var lng = Math.abs(longitude.value) + Math.abs(lngMin.value) / 60
// // @ts-ignore (define in dts)
// var lat = Math.abs(latitude.value) + Math.abs(latMin.value) / 60
// // @ts-ignore (define in dts)
// lng = longitude.value < 0 ? -lng : lng
// // @ts-ignore (define in dts)
// lat = latitude.value < 0 ? -lat : lat
// var position = { lng, lat, alt: 100 }
// new YJ.Global.flyTo(window.earth, {
// position: position
// })
// break
// case 'third':
// var lng =
// // @ts-ignore (define in dts)
// Math.abs(longitude.value) + Math.abs(lngMin.value) / 60 + Math.abs(lngSec.value) / 3600
// var lat =
// // @ts-ignore (define in dts)
// Math.abs(latitude.value) + Math.abs(latMin.value) / 60 + Math.abs(latSec.value) / 3600
// // @ts-ignore (define in dts)
// lng = longitude.value < 0 ? -lng : lng
// // @ts-ignore (define in dts)
// lat = latitude.value < 0 ? -lat : lat
// var position = { lng, lat, alt: 100 }
// new YJ.Global.flyTo(window.earth, {
// position: position
// })
// break
// }
await initMapData('point', params, null)
}
var pointPosi = {}
const draw = async (e) => {
let position = await turnToPosition()
if (!position) {
return
if (!pointPosi.lng) {
await getPosition()
if ((!pointPosi.lng && pointPosi.lng !== 0) || (!pointPosi.lat && pointPosi.lng !== 0)) {
ElMessage({
message: '请正确填写坐标信息!',
type: 'error'
})
return
}
}
let name = '点标注'
await addMapSource({
addMapSource({
type: 'point',
id: id.value,
sourceName: name,
opt: {
id: id.value,
name: name,
position: position
position: pointPosi,
billboard: {
show: true,
image:
YJ.Global.getBillboardDefaultUrl() ||
'http://localhost:' + availablePort.value + '/' + 'GEMarker1/A-ablu-blank.png'
}
}
})
baseDialog.value?.close()
}
const close = (e) => {
window.earth.entityMap.get(id.value)?.remove()
baseDialog.value?.close()
}
defineExpose({

View File

@ -62,12 +62,12 @@ const shpTotalDict: any = reactive(
//获取物资类型
const getResource = () => {
let formData:any = new FormData()
let formData: any = new FormData()
formData.append('pageNum', 1)
formData.append('pageSize', 10000)
formData.append('name', '')
MaterialApi.getList(formData).then((res) => {
shpTotalDict.value = res.data.data.map((item) => {
shpTotalDict.value = res.data.records.map((item) => {
return item.name
})
})

View File

@ -97,7 +97,8 @@ function initEcharts(points) {
tooltip: {
trigger: 'axis',
textStyle: {
align: 'left'
align: 'left',
color: '#fff'
},
formatter(params) {
const xy: any = coords[params[0].dataIndex]
@ -115,6 +116,17 @@ function initEcharts(points) {
'' +
xy[1].toFixed(5)
)
},
color: '#fff',
borderWidth: 1,
borderColor: 'rgba(0,255,255,0.5)',
backgroundColor: 'rgba(0, 255, 255, 0.05)',
axisPointer: {
lineStyle: {
type: 'solid',
width: 3,
color: 'rgba(0,255,255,0.3)'
}
}
},
grid: {
@ -132,10 +144,9 @@ function initEcharts(points) {
axisLabel: {
color: '#ffffff'
},
axisLine: {
lineStyle: {
color: '#ffffff'
}
axisLine: { lineStyle: { color: 'rgba(31, 198, 255, 0.32)', width: 3, type: 'solid' } },
splitLine: {
show: false
}
}
],
@ -146,11 +157,16 @@ function initEcharts(points) {
axisLabel: {
color: '#ffffff'
},
axisLine: {
lineStyle: {
color: '#ffffff'
}
axisLine: { show: false },
splitLine: {
show: true,
lineStyle: { type: 'dashed', color: 'rgba(0,255,255,0.3)' }
}
// axisLine: {
// lineStyle: {
// color: '#ffffff'
// }
// }
}
],
series: [
@ -161,7 +177,7 @@ function initEcharts(points) {
smooth: true,
itemStyle: {
normal: {
color: '#39FDA1'
color: 'rgb(0, 255, 255)'
}
},
lineStyle: {
@ -176,15 +192,13 @@ function initEcharts(points) {
colorStops: [
{
offset: 0,
color: 'rgba(85,254,139,1)' // 0% 处的颜色
},
{
offset: 0.5,
color: 'rgba(7,252,202,1)' // 100% 处的颜色
// color: 'rgba(85,254,139,1)' // 0% 处的颜色
color: 'rgba(31, 198, 255,0.2)' // 0% 处的颜色
},
{
offset: 1,
color: 'rgba(14,245,210,1)' // 100% 处的颜色
// color: 'rgba(14,245,210,1)' // 100% 处的颜色
color: 'rgba(0, 255, 255,1)' // 0% 处的颜色
}
],
globalCoord: false // 缺省为 false
@ -213,9 +227,9 @@ function initEcharts(points) {
}
],
false
),
shadowColor: 'rgba(14,245,210,1)', //阴影颜色
shadowBlur: 20
)
// shadowColor: 'rgba(14,245,210,1)' //阴影颜色
// shadowBlur: 20
}
},
markPoint: {
@ -344,9 +358,9 @@ function initEcharts(points) {
}
],
false
),
shadowColor: 'rgba(14,245,210,1)', //阴影颜色
shadowBlur: 20
)
// shadowColor: 'rgba(14,245,210,1)' //阴影颜色
// shadowBlur: 20
}
},
markPoint: {

View File

@ -12,38 +12,10 @@
<div class="div-item">
<div class="row">
<div class="col">
<span class="label">最低水位</span>
<div class="input-number input-number-unit-3">
<input
class="input"
id="minWaterLevel"
type="number"
title=""
min="0"
max="9999999"
v-model="minWaterLevel"
@input="minWaterLevelInput"
/>
<span class="unit">m</span>
<span class="arrow"></span>
</div>
</div>
<div class="col">
<span class="label">最高水位</span>
<div class="input-number input-number-unit-3">
<input
class="input"
id="maxWaterLevel"
type="number"
title=""
min="0"
max="9999999"
v-model="maxWaterLevel"
@input="maxWaterLevelInput"
/>
<span class="unit">m</span>
<span class="arrow"></span>
</div>
<span class="label">绘制区域</span>
<button class="draw" @click="draw">
<svg class="icon-draw"><use xlink:href="#yj-icon-draw"></use></svg>绘制范围
</button>
</div>
</div>
<div class="row">
@ -66,7 +38,7 @@
</div>
</div>
<div class="col">
<span class="label">水量</span>
<span class="label">水量体积</span>
<div class="input-number input-number-unit-3">
<input
class="input"
@ -84,8 +56,44 @@
</div>
</div>
</div>
<div class="row">
<div class="col">
<span class="label">最高水位</span>
<div class="input-number input-number-unit-3">
<input
class="input"
id="maxWaterLevel"
type="number"
title=""
min="0"
max="9999999"
v-model="maxWaterLevel"
@input="maxWaterLevelInput"
/>
<span class="unit">m</span>
<span class="arrow"></span>
</div>
</div>
<div class="col">
<span class="label">最低水位</span>
<div class="input-number input-number-unit-3">
<input
class="input"
id="minWaterLevel"
type="number"
title=""
min="0"
max="9999999"
v-model="minWaterLevel"
@input="minWaterLevelInput"
/>
<span class="unit">m</span>
<span class="arrow"></span>
</div>
</div>
</div>
</div>
<span class="custom-divider"></span>
<!-- <span class="custom-divider"></span> -->
<div class="div-item">
<div class="row subtitle-box">
<span class="subtitle">上升速度</span>
@ -123,7 +131,7 @@
</div>
<span class="custom-divider"></span>
<div class="div-item">
<div class="row">
<!-- <div class="row">
<div class="col operate-btn-box">
<button class="draw" @click="draw">
<svg class="icon-draw"><use xlink:href="#yj-icon-draw"></use></svg>绘制范围
@ -146,7 +154,7 @@
<svg class="icon-play"><use xlink:href="#yj-icon-play"></use></svg>播放
</button>
</div>
</div>
</div>-->
</div>
<div class="table">
@ -174,6 +182,22 @@
<span class="custom-divider" style="margin-top: 20px"></span>
</template>
<template #footer>
<div style="position: absolute; left: 24px; display: flex">
<button class="flyto" @click="flyTo">
<svg class="icon-positions">
<use xlink:href="#yj-icon-positions"></use></svg
>定位
</button>
<button class="analog" style="margin-left: 10px" @click="pause">
<svg class="icon-play" v-if="!isPausng"><use xlink:href="#yj-icon-play"></use></svg>
<svg class="icon-pause" v-if="isPausng"><use xlink:href="#yj-icon-pause"></use></svg>
<span>{{ !isPausng ? '开始模拟' : '暂停模拟' }}</span>
</button>
</div>
<button class="reset" @click="reset">
<svg class="icon-reset"><use xlink:href="#yj-icon-reset"></use></svg>重置
</button>
<button @click="close">取消</button>
</template>
</Dialog>
@ -265,8 +289,10 @@ function reset() {
submerge.restart()
}
function pause() {
if (isPausng.value) {
if (!isPausng.value) {
//暂停中
console.log('暂停中')
submerge.move()
submerge.start()
} else {
//播放中

View File

@ -8,7 +8,7 @@
:closeCallback="closeCallBack"
>
<template #content>
<span class="custom-divider"></span>
<!-- <span class="custom-divider"></span>
<div class="div-item">
<div class="row">
<div class="col">
@ -18,7 +18,7 @@
</button>
</div>
</div>
</div>
</div> -->
<span class="custom-divider"></span>
<div class="div-item">
<div class="row" style="margin-bottom: 25px">
@ -72,11 +72,24 @@
</div>
</div>
</div>
<div class="row">
<div class="col">
<span class="label">绘制区域</span>
<button @click="draw">
<svg class="icon-draw"><use xlink:href="#yj-icon-draw"></use></svg>开始绘制
</button>
</div>
</div>
</div>
<span class="custom-divider"></span>
</template>
<template #footer>
<button @click="draw">绘制</button>
<div style="position: absolute; left: 24px; display: flex">
<button class="edit" @click="edit" v-if="showEdite">
<svg class="icon-edit"><use xlink:href="#yj-icon-edit"></use></svg>二次编辑
</button>
</div>
<button @click="close">关闭</button>
</template>
</Dialog>
@ -90,7 +103,7 @@ import Dialog from '@/components/dialog/baseDialog.vue'
const baseDialog: any = ref(null)
const eventBus: any = inject('bus')
const viewPointHeight: any = ref(1.8)
var horizontalViewAngle: any = ref(90)
var horizontalViewAngle: any = ref(30)
var viewShed: any = reactive([])
var timeout: any = reactive([])
@ -157,7 +170,8 @@ function changeFun() {
const closeCallBack = (e) => {
viewShed.close()
viewPointHeight.value = 1.8
horizontalViewAngle.value = 90
horizontalViewAngle.value = 30
showEdite.value = false
}
onBeforeUnmount(() => {
closeCallBack('')
@ -173,8 +187,15 @@ function viewPointHeightInput(e) {
viewShed.viewPointHeight = viewPointHeight.value
}
}
var showEdite: any = ref(false)
function draw() {
viewShed.draw()
showEdite.value = false
viewShed.draw(getDrawData)
}
function getDrawData(data) {
if (data) {
showEdite.value = true
}
}
function close() {
baseDialog.value?.close()

View File

@ -10,32 +10,32 @@
<template #content>
<el-form label-width="100px" :model="addForm" :rules="peopleRules" ref="peopleFormRef">
<el-form-item label="名称" prop="cameraName">
<el-input v-model="addForm.cameraName" clearable />
<el-input v-model="addForm.cameraName" clearable placeholder="请输入设备名称" />
</el-form-item>
<el-form-item label="设备IP" prop="ip">
<el-input v-model="addForm.ip" clearable></el-input>
<el-input v-model="addForm.ip" clearable placeholder="请输入设备IP地址"></el-input>
</el-form-item>
<el-form-item label="设备端口" prop="port">
<el-input v-model="addForm.port" clearable></el-input>
<el-input v-model="addForm.port" clearable placeholder="请输入设备端口"></el-input>
</el-form-item>
<el-form-item label="用户名" prop="username">
<el-input v-model="addForm.username" clearable></el-input>
<el-input v-model="addForm.username" clearable placeholder="请输入用户名"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="addForm.password" clearable></el-input>
<el-input v-model="addForm.password" clearable placeholder="请输入密码"></el-input>
</el-form-item>
<el-form-item label="设备类型" prop="type">
<el-select v-model="addForm.type" filterable placeholder="请选择">
<el-select v-model="addForm.type" filterable placeholder="请选择设备类型">
<el-option label="海康" value="海康"> </el-option>
<el-option label="大华" value="大华"> </el-option>
<!-- <el-option label="手动录入" value="3"> </el-option> -->
</el-select>
</el-form-item>
<el-form-item v-if="addForm.type === '3'" label="视频流地址" prop="flvUrl">
<el-input v-model="addForm.flvUrl" clearable></el-input>
<el-input v-model="addForm.flvUrl" clearable placeholder="请输入视频流地址"></el-input>
</el-form-item>
<el-form-item label="通道号" prop="channel">
<el-input v-model="addForm.channel" clearable></el-input>
<el-input v-model="addForm.channel" clearable placeholder="请输入通道号"></el-input>
</el-form-item>
</el-form>
</template>
@ -79,8 +79,9 @@ const peopleRules: any = reactive({
ip: [{ required: true, message: '请输入ip', trigger: 'blur' }],
port: [{ required: true, message: '请输入设备端口号', trigger: 'blur' }],
username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
type: [{ required: true, message: '请选择设备类型', trigger: 'blur' }]
password: [{ required: true, message: '请channel', trigger: 'blur' }],
type: [{ required: true, message: '请选择设备类型', trigger: 'blur' }],
channel: [{ required: true, message: '请输入通道号', trigger: 'blur' }]
})
var cancel = () => {
@ -167,6 +168,7 @@ defineExpose({
.YJ-custom-base-dialog.addDevice > .content textarea {
background-color: transparent !important;
border: unset !important;
font-size: 14px !important;
}
</style>
<style scoped lang="scss">