From 85fb13abbeadc1765d2c0056ba99c6c19aa35dfd Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Sun, 09 Apr 2023 03:44:49 +0800
Subject: [PATCH] 电子沙盘的调整
---
public/img/icon/custom.png | 0
src/styles/base/index.scss | 463 ++++++++++------------
src/styles/media/index.scss | 250 ------------
src/views/activity/components/policePersonChange.vue | 7
src/views/activity/components/twoDrawBtnBox.vue | 29 +
src/components/map/index.vue | 32 +
src/views/activity/components/publicIndex.vue | 53 +
src/views/activity/index.vue | 16
src/views/activity/components/policeCarChange.vue | 4
src/components/imagesSelect/index.vue | 12
src/views/activity/components/drawBtnBox.vue | 26 +
src/views/activity/components/polygonPlot.vue | 186 ++++++---
src/components/map/components/activityPolicePopup.vue | 25
src/views/activity/components/polylinePlot.vue | 50 +-
14 files changed, 526 insertions(+), 627 deletions(-)
diff --git a/public/img/icon/custom.png b/public/img/icon/custom.png
new file mode 100644
index 0000000..7949e3b
--- /dev/null
+++ b/public/img/icon/custom.png
Binary files differ
diff --git a/src/components/imagesSelect/index.vue b/src/components/imagesSelect/index.vue
index cc05e6b..f004a7b 100644
--- a/src/components/imagesSelect/index.vue
+++ b/src/components/imagesSelect/index.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-04-04 16:24:42
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2023-04-06 10:37:52
+ * @LastEditTime: 2023-04-07 15:59:41
* @FilePath: \srs-police-affairs\src\components\imagesSelect\index.vue
* @Description:
*
@@ -60,9 +60,10 @@
<style lang="scss" scoped>
.container {
- // position: absolute;
- // left: 0;
- // bottom: -10px;
+ position: absolute;
+ left: 0;
+ top: 100%;
+ z-index: 999999;
display: flex;
flex-wrap: wrap;
@@ -108,6 +109,9 @@
height: 20px;
line-height: 20px;
font-size: 12px;
+ overflow: hidden; //超出的文本隐藏
+ text-overflow: ellipsis; //溢出用省略号显示
+ white-space: nowrap; //溢出不换行
}
}
}
diff --git a/src/components/map/components/activityPolicePopup.vue b/src/components/map/components/activityPolicePopup.vue
index a263e05..3c7fec2 100644
--- a/src/components/map/components/activityPolicePopup.vue
+++ b/src/components/map/components/activityPolicePopup.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-02 09:39:32
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2023-03-07 11:02:54
+ * @LastEditTime: 2023-04-09 03:41:13
* @FilePath: \srs-police-affairs\src\components\map\components\activityPolicePopup.vue
* @Description:
*
@@ -14,7 +14,8 @@
<div style="transform: translate(-50%, 0);">
<!-- 样式自己修改 -->
<div class="content" :class="{ 'scale-dom': scaleDomFlag }">
- <div class="data-box" v-if="activityPolicePopupData.label != 'none'">
+ <div class="data-box"
+ v-if="activityPolicePopupData.label != 'none' && activityPolicePopupData.billboard == false">
<div class="line">
<div class="name">警车编号:</div>
<div class="value">{{ activityPolicePopupData.label }}</div>
@@ -39,9 +40,14 @@
<div class="name">所属辖区:</div>
<div class="value"> {{ activityPolicePopupData.deptName }}</div>
</div>
+ <div class="line">
+ <div class="name">描述:</div>
+ <div class="value"> {{ activityPolicePopupData.Data.data.remark }}</div>
+ </div>
</div>
- <div class="data-box" v-if="activityPolicePopupData.policeStationName != 'none'">
+ <div class="data-box"
+ v-if="activityPolicePopupData.policeStationName != 'none' && activityPolicePopupData.billboard == false">
<div class="line">
<div class="name">警员姓名:</div>
<div class="value"> {{ activityPolicePopupData.policeData.name }}</div>
@@ -66,8 +72,18 @@
<div class="name">所属辖区:</div>
<div class="value"> {{ activityPolicePopupData.policeData.deptName }}</div>
</div>
+ <div class="line">
+ <div class="name">描述:</div>
+ <div class="value"> {{ activityPolicePopupData.Data.data.remark }}</div>
+ </div>
</div>
+ <div class="data-box" v-if="activityPolicePopupData.billboard == true">
+ <div class="line">
+ <div class="name">描述:</div>
+ <div class="value"> {{ activityPolicePopupData.Data.item.remark }}</div>
+ </div>
+ </div>
</div>
</div>
</div>
@@ -124,8 +140,6 @@
}
.content {
- width: 220px;
- height: 130px;
background: $bg-color;
border-radius: 4px;
color: #fff;
@@ -138,7 +152,6 @@
justify-self: start;
.name {
- width: 90px;
text-align: justify;
}
}
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 018140f..755c42c 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2022-08-18 17:00:30
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2023-04-06 18:45:53
+ * @LastEditTime: 2023-04-07 15:27:58
* @FilePath: \srs-police-affairs\src\components\map\index.vue
* @Description: 公用地图组件
*
@@ -287,7 +287,7 @@
// global.viewer.addTerrain(terrain)
// 内网
- // that.switchImg()
+ that.switchImg()
// 外网
global.viewer.imageryLayers.addImageryProvider(
@@ -666,6 +666,34 @@
})
)
+ // const fileArray = ['A', 'B', 'C', 'D', 'E', 'F']
+ // let subdomains = []
+
+ // fileArray.forEach(item => {
+ // for (let i = 1; i < 6; i++) {
+ // subdomains.push(`${item}${i}`)
+ // }
+ // })
+
+ // baseLayers = global.viewer.imageryLayers.addImageryProvider(
+ // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+ // url: `${window.BASE_URL_CONFIG.VUE_APP_MAP_YX}/{fileName}/{AZ}/{y}/{x}.png`,
+ // customTags: {
+ // AZ (imageryProvider, x, y, level) {
+ // return 'Z' + level
+ // },
+
+ // fileName (imageryProvider, x, y, level) {
+ // console.log(imageryProvider, x, y, level)
+ // }
+ // },
+ // enablePickFeatures: false
+ // // minimumLevel: 0,
+ // // maximumLevel: 25,
+ // // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // })
+ // )
+
// baseLayers = global.viewer.imageryLayers.addImageryProvider(
// new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
// url: `${window.BASE_URL_CONFIG.VUE_APP_MAP_YX}/geoserver/gwc/service/wmts`,
diff --git a/src/styles/base/index.scss b/src/styles/base/index.scss
index 9e0590a..be0e3d4 100644
--- a/src/styles/base/index.scss
+++ b/src/styles/base/index.scss
@@ -665,26 +665,50 @@
display: flex;
flex-direction: column;
width: 360px;
- height: 240px;
+
+ .el-dialog__header {
+ .el-dialog__title {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ }
.el-dialog__body {
position: relative;
&>div {
- position: absolute;
+ padding-bottom: 56px;
+ position: relative;
width: 100%;
height: 100%;
- top: 0;
- left: 0;
- &>.input-box {
- margin-bottom: 10px;
+ &>div {
+ position: relative;
+ height: 44px;
+ line-height: 44px;
+ }
+
+
+ .line {
display: flex;
align-items: center;
- justify-content: center;
- height: 36px;
- position: relative;
+
+ .pick-color-box {
+ display: flex;
+ align-items: center;
+ }
}
+
+ .btn-box {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ }
+
}
@@ -710,33 +734,12 @@
.el-tree {
position: absolute;
- height: 100px;
- top: 36px;
- width: calc(100% - 16px);
+ max-height: 220px;
+ top: 44px;
+ width: 100%;
background-color: rgba(8, 56, 185, 0.6);
z-index: 99;
- }
-
- .el-input {
- width: calc(100% - 20px);
- font-size: 14px;
- top: 0;
- left: 0;
- }
-
- .police-btn-box {
- position: absolute;
- bottom: 16px;
- width: 100%;
- }
-
- .area {
- top: 92px;
- }
-
- .line {
- display: flex;
- justify-content: left;
+ overflow-y: auto;
}
.value-name-box {
@@ -775,30 +778,50 @@
display: flex;
flex-direction: column;
width: 360px;
- height: 240px;
+
+ .el-dialog__header {
+ .el-dialog__title {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ }
.el-dialog__body {
position: relative;
&>div {
- position: absolute;
+ padding-bottom: 56px;
+ position: relative;
width: 100%;
height: 100%;
- top: 0;
- left: 0;
- &>.input-box {
- margin-bottom: 10px;
+ &>div {
+ position: relative;
+ height: 44px;
+ line-height: 44px;
+ }
+
+
+ .line {
display: flex;
align-items: center;
- justify-content: center;
- height: 36px;
- position: relative;
- &>div {
- width: 100%;
+ .pick-color-box {
+ display: flex;
+ align-items: center;
}
}
+
+ .btn-box {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ }
+
}
.el-button {
@@ -809,7 +832,7 @@
width: 60px;
height: 30px;
text-align: center;
- margin-top: 40px;
+ margin-top: 16px;
}
}
@@ -817,15 +840,12 @@
background-color: #409EFF;
}
- .el-select .el-input.is-disabled .el-input__inner {
- background-color: rgba(8, 56, 185, 0.9);
+ .el-select {
+ width: 100%;
}
- .police-btn-box {
- position: absolute;
- left: 0;
- bottom: 16px;
- width: 100%;
+ .el-select .el-input.is-disabled .el-input__inner {
+ background-color: rgba(8, 56, 185, 0.9);
}
.line {
@@ -865,84 +885,129 @@
}
}
-.edit-line-box {
- .el-dialog {
- display: flex;
- flex-direction: column;
- width: 360px;
- height: 240px;
+// .edit-line-box {
+// .el-dialog {
+// display: flex;
+// flex-direction: column;
+// width: 360px;
+// height: 240px;
- .el-dialog__body {
- .el-button {
- padding: 0;
- background-color: rgba(8, 56, 185, 0.9);
- border: 1px solid rgba(8, 56, 185, 0.9);
- color: #fff;
- width: 60px;
- height: 30px;
- text-align: center;
- margin-top: 10px;
- }
+// .el-dialog__body {
+// .el-button {
+// padding: 0;
+// background-color: rgba(8, 56, 185, 0.9);
+// border: 1px solid rgba(8, 56, 185, 0.9);
+// color: #fff;
+// width: 60px;
+// height: 30px;
+// text-align: center;
+// margin-top: 10px;
+// }
- .el-button:hover {
- background-color: #409EFF;
- }
+// .el-button:hover {
+// background-color: #409EFF;
+// }
- &>div {
- display: flex;
- // justify-content: center;
- margin-bottom: 10px;
- }
+// &>div {
+// display: flex;
+// // justify-content: center;
+// margin-bottom: 10px;
+// }
- .input-width-box {
- input {
- outline: none;
- width: 80px;
- height: 28px;
- background-color: rgba(8, 56, 185, 0.5);
- border: none;
- color: #fff;
- border-radius: 4px;
- padding-left: 15px;
- }
+// .input-width-box {
+// input {
+// outline: none;
+// width: 80px;
+// height: 28px;
+// background-color: rgba(8, 56, 185, 0.5);
+// border: none;
+// color: #fff;
+// border-radius: 4px;
+// padding-left: 15px;
+// }
- input:focus {
- border-color: #409EFF;
- border: 1px solid #409EFF;
- }
- }
+// input:focus {
+// border-color: #409EFF;
+// border: 1px solid #409EFF;
+// }
+// }
- .value-name-box {
- height: 32px;
- line-height: 32px;
- width: 120px;
- text-align: left;
- }
+// .value-name-box {
+// height: 32px;
+// line-height: 32px;
+// width: 120px;
+// text-align: left;
+// }
- .edit-line-btn-box {
- display: flex;
- justify-content: center;
- }
+// .edit-line-btn-box {
+// display: flex;
+// justify-content: center;
+// }
- .units {
- width: 60px;
- height: 26px;
- text-align: left;
- padding-left: 10px;
- }
+// .units {
+// width: 60px;
+// height: 26px;
+// text-align: left;
+// padding-left: 10px;
+// }
- }
- }
-}
+// }
+// }
+// }
+.edit-line-box,
+.edit-plot-box,
.add-polygon-box {
.el-dialog {
display: flex;
flex-direction: column;
width: 360px;
- height: 240px;
+
+ .el-dialog__header {
+ .el-dialog__title {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ }
.el-dialog__body {
+ position: relative;
+
+ &>div {
+ padding-bottom: 56px;
+ position: relative;
+ width: 100%;
+ height: 100%;
+
+ &>div {
+ position: relative;
+ height: 44px;
+ line-height: 44px;
+ }
+
+
+ .line {
+ display: flex;
+ align-items: center;
+
+ .pick-color-box {
+ display: flex;
+ align-items: center;
+ }
+ }
+
+ .btn-box {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ }
+
+ }
+
.el-button {
padding: 0;
background-color: rgba(8, 56, 185, 0.9);
@@ -951,71 +1016,45 @@
width: 60px;
height: 30px;
text-align: center;
+ margin-top: 16px;
}
+ }
- .el-button:hover {
- background-color: #409EFF;
- }
+ .value-name-box {
+ height: 32px;
+ line-height: 32px;
+ width: 110px;
+ }
- .line {
- display: flex;
- justify-content: left;
- margin-bottom: 10px;
+ .line {
+ display: flex;
+ justify-content: left;
+ }
- input {
- outline: none;
- width: 80px;
- height: 28px;
- background-color: rgba(8, 56, 185, 0.5);
- border: none;
- color: #fff;
- border-radius: 4px;
- padding-left: 15px;
- }
+ .width-box {
+ display: flex;
+ align-items: center;
+ }
- input:focus {
- border-color: #409EFF;
- border: 1px solid #409EFF;
- }
- }
+ .alpha {
+ flex: 1;
+ }
- .alpha {
- width: calc(100% - 110px);
- }
-
- .value-name-box {
- width: 110px;
- display: flex;
- align-items: center;
- }
-
- .add-polygon-btn-box {
- display: flex;
- justify-content: center;
- }
-
+ .input-width-box {
input {
- height: 30px;
- font-size: 16px;
- color: #ffffff;
- background-color: transparent;
- border: 1px solid rgb(0, 92, 169);
+ outline: none;
+ width: 80px;
+ height: 28px;
+ background-color: rgba(8, 56, 185, 0.5);
+ border: none;
+ color: #fff;
+ border-radius: 4px;
+ padding-left: 15px;
}
input:focus {
- outline: none;
- }
-
- input::-webkit-input-placeholder {
- color: rgba(238, 238, 238, 0.7);
- }
-
- .el-input--suffix .el-input__inner {
- padding-right: 10px;
- }
-
- .placeholder {
- height: 26px;
+ border-color: #409EFF;
+ border: 1px solid #409EFF;
}
}
}
@@ -1024,92 +1063,6 @@
.select-on-tab {
box-shadow: 0 2px 2px $menu-tab-shadow;
color: #fff;
-}
-
-.edit-plot-box {
- .el-dialog {
- display: flex;
- flex-direction: column;
- width: 360px;
- height: 240px;
-
- .el-dialog__body {
- .el-button {
- padding: 0;
- background-color: rgba(8, 56, 185, 0.9);
- border: 1px solid rgba(8, 56, 185, 0.9);
- color: #fff;
- width: 60px;
- height: 30px;
- text-align: center;
- margin-top: 10px;
- }
-
- .el-button:hover {
- background-color: #409EFF;
- }
-
- &>div {
- display: flex;
- // justify-content: center;
- margin-bottom: 10px;
-
- input {
- outline: none;
- width: 80px;
- height: 28px;
- background-color: rgba(8, 56, 185, 0.5);
- border: none;
- color: #fff;
- border-radius: 4px;
- padding-left: 15px;
- }
-
- input:focus {
- border-color: #409EFF;
- border: 1px solid #409EFF;
- }
- }
-
- .value-name-box {
- height: 32px;
- line-height: 32px;
- width: 120px;
- text-align: left;
- }
-
- .alpha {
- width: calc(100% - 120px);
- }
-
- input {
- height: 30px;
- font-size: 16px;
- text-indent: 1em;
- color: #ffffff;
- background-color: transparent;
- border: 1px solid rgb(0, 92, 169);
- }
-
- input:focus {
- outline: none;
- }
-
- input::-webkit-input-placeholder {
- color: rgba(238, 238, 238, 0.7);
- }
-
- .placeholder {
- height: 15px;
- margin-bottom: 0px;
- }
-
- .edit-plot-btn-box {
- display: flex;
- justify-content: center;
- }
- }
- }
}
.edit-range-box {
diff --git a/src/styles/media/index.scss b/src/styles/media/index.scss
index 8975b17..7d22be4 100644
--- a/src/styles/media/index.scss
+++ b/src/styles/media/index.scss
@@ -1642,7 +1642,7 @@
left: countSizeVw(692, 1920);
bottom: countSizeVh(40);
border-radius: countSizeVh(8);
- width: countSizeVw(546, 1920);
+ width: auto;
z-index: 99;
.left {
@@ -2253,254 +2253,6 @@
height: countSizeVh(30);
border-radius: countSizeVh(4);
margin-top: countSizeVh(10);
- }
- }
-
- .choose-police-box {
- .el-dialog__header span {
- font-size: countSizeVh(18);
- }
-
- .el-dialog .el-dialog__body {
- font-size: countSizeVh(16);
-
- &>div {
- padding: countSizeVh(14);
- padding-top: 0;
-
- &>.input-box {
- height: 36px;
- }
- }
- }
-
- .el-dialog__header button {
- font-size: countSizeVh(18);
- right: countSizeVw(10, 1920);
- }
-
- .el-dialog {
- width: countSizeVw(360, 1920);
- height: countSizeVh(240);
- }
-
- .el-dialog .el-dialog__body .el-button {
- width: countSizeVw(60, 1920);
- height: countSizeVh(30);
- margin-top: countSizeVh(16);
- border: countSizeVh(1) solid rgba(8, 56, 185, 0.9);
- }
-
- .el-dialog .el-dialog__body .el-button:hover {
- background-color: #409EFF;
- }
-
- .el-tree {
- height: countSizeVh(240);
- top: countSizeVh(36);
- width: calc(100% - countSizeVw(16, 1920));
- }
-
- .el-input {
- width: calc(100% - countSizeVw(20, 1920));
- }
-
- .police-btn-box {
- bottom: countSizeVh(16);
- }
-
- .value-name-box {
- height: countSizeVh(32);
- line-height: countSizeVh(32);
- width: countSizeVw(100, 1920);
- }
-
- .area {
- top: countSizeVh(92);
- }
-
- .input-width-box {
- input {
- width: countSizeVw(80, 1920);
- height: countSizeVh(28);
- border-radius: countSizeVh(4);
- padding-left: countSizeVw(15, 1920);
- }
- }
- }
-
- .choose-policeCar-box {
- .el-dialog__header span {
- font-size: countSizeVh(18);
- }
-
- .el-dialog .el-dialog__body {
- font-size: countSizeVh(16);
-
- &>div {
- padding: countSizeVh(14);
- padding-top: 0;
-
- &>div {
- line-height: countSizeVh(36);
- }
- }
- }
-
- .police-btn-box {
- bottom: countSizeVh(16);
- }
-
- .el-dialog__header button {
- font-size: countSizeVh(18);
- right: countSizeVw(10, 1920);
- }
-
- .el-dialog {
- width: countSizeVw(360, 1920);
- height: countSizeVh(240);
- }
-
- .el-dialog .el-dialog__body .el-button {
- width: countSizeVw(60, 1920);
- height: countSizeVh(30);
- margin-top: countSizeVh(20);
- border: countSizeVh(1) solid rgba(8, 56, 185, 0.9);
- }
-
- .el-dialog .el-dialog__body .el-button:hover {
- background-color: #409EFF;
- }
-
- .value-name-box {
- height: countSizeVh(32);
- line-height: countSizeVh(32);
- width: countSizeVw(130, 1920);
- }
-
- .input-width-box {
- input {
- width: countSizeVw(80, 1920);
- height: countSizeVh(28);
- border-radius: countSizeVh(4);
- padding-left: countSizeVw(15, 1920);
- }
- }
- }
-
- .edit-line-box {
- .el-dialog {
- width: countSizeVw(360, 1920);
- height: countSizeVh(240);
-
- .el-dialog__body {
- .el-button {
- width: countSizeVw(60, 1920);
- height: countSizeVh(30);
- margin-top: countSizeVh(10);
- }
-
-
- &>div {
- margin-bottom: countSizeVh(10);
- }
-
- .input-width-box {
- input {
- width: countSizeVw(80, 1920);
- height: countSizeVh(28);
- border-radius: countSizeVh(4);
- padding-left: countSizeVw(15, 1920);
- }
-
- }
-
- .value-name-box {
- height: countSizeVh(32);
- line-height: countSizeVh(32);
- }
-
-
- .units {
- width: countSizeVw(60, 1920);
- height: countSizeVh(26);
- padding-left: countSizeVw(10, 1920)
- }
-
- }
- }
- }
-
- .add-polygon-box {
- .el-dialog {
- width: countSizeVw(360, 1920);
- height: countSizeVh(240);
-
- .el-dialog__body {
- .el-button {
- width: countSizeVw(60, 1920);
- height: countSizeVh(30);
- }
-
- .line {
- margin-bottom: countSizeVh(10);
- }
-
- .value-name-box {
- width: countSizeVh(120);
- }
-
- input {
- height: countSizeVh(30);
- font-size: countSizeVh(16);
- border: countSizeVh(1) solid rgb(0, 92, 169);
- }
-
- .alpha {
- width: calc(100% - countSizeVh(140));
- }
-
- }
- }
- }
-
- .edit-plot-box {
- .el-dialog {
- width: countSizeVw(360, 1920);
- height: countSizeVh(240);
-
- .el-dialog__body {
- .el-button {
- width: countSizeVw(60, 1920);
- height: countSizeVh(30);
- margin-top: countSizeVh(10);
- }
-
- &>div {
- margin-bottom: countSizeVh(10);
- }
-
- .value-name-box {
- height: countSizeVh(32);
- line-height: countSizeVh(32);
- width: countSizeVw(120, 1920);
- }
-
- input {
- height: countSizeVh(30);
- font-size: countSizeVh(16);
- border: countSizeVh(1) solid rgb(0, 92, 169);
- }
-
- .placeholder {
- height: countSizeVh(15);
- margin-bottom: countSizeVh(0);
- }
-
- .alpha {
- width: calc(100% - countSizeVh(160));
- }
- }
}
}
diff --git a/src/views/activity/components/drawBtnBox.vue b/src/views/activity/components/drawBtnBox.vue
index 7db652c..9de5932 100644
--- a/src/views/activity/components/drawBtnBox.vue
+++ b/src/views/activity/components/drawBtnBox.vue
@@ -24,6 +24,9 @@
<li>
<button @click="drawThreeArrow('billboard', 'icon', 'icon3')" title="危险人物">危险人物</button>
</li>
+ <li>
+ <button @click="drawThreeArrow('billboard', 'icon', 'icon4')" title="自定义图片标注">自定义图片标注</button>
+ </li>
</ul>
</div>
<div>
@@ -139,8 +142,11 @@
imgUrl = 'wxrw'
material = global.DC.Namespace.Cesium.Color.fromBytes(255, 0, 0, 255)
break
+ case 'icon4':
+ imgUrl = 'custom'
+ material = global.DC.Namespace.Cesium.Color.fromBytes(255, 0, 0, 255)
+ break
}
-
let drawConfig = {}
@@ -281,9 +287,11 @@
addPlotOverlayData.attrParams = { id: item.id, color: item.color, item }
addPlotOverlayData.on(global.DC.MouseEventType.CLICK, this.$parent.reeditArrowClick)
- if (item.type == 6 || item.type == 7 || item.type == 8) {
+ if (item.type == 6 || item.type == 7 || item.type == 8 || item.type == 11) {
const height = item.altitude.split(',')
let position = item.position.slice(12, item.position.length - 2).split(',')[0].split(' ')
+
+ if (item.iconUrl != '') addPlotOverlayData.icon = item.iconUrl
addPlotOverlayData.setStyle({
color: color
@@ -295,6 +303,8 @@
alt: Number(height[0]),
}
+ addPlotOverlayData.on(global.DC.MouseEventType.MOUSE_OVER, this.$parent.pointMouseOver)
+ addPlotOverlayData.on(global.DC.MouseEventType.MOUSE_OUT, this.$parent.pointMouseOut)
this.$parent.isHaveFactor = true
} else if (item.type == 5) {
addPlotOverlayData.setStyle({
@@ -447,6 +457,14 @@
"font": `${params.width}px sans-serif`
})
}
+
+ if ('icon' in params && params.icon != '') {
+ overlay.icon = params.icon
+ }
+
+ if ('remark' in params && params.remark != '') {
+ overlay.attrParams.item.remark = params.remark
+ }
},
// 修改警车样式
@@ -533,6 +551,10 @@
overlay.remove()
}
}
+
+ if ('remark' in params) {
+ overlay.attrParams.data.remark = params.remark
+ }
},
// 修改警车
diff --git a/src/views/activity/components/policeCarChange.vue b/src/views/activity/components/policeCarChange.vue
index 363ce5f..f207113 100644
--- a/src/views/activity/components/policeCarChange.vue
+++ b/src/views/activity/components/policeCarChange.vue
@@ -1,7 +1,7 @@
<template>
<div>
<el-dialog title="选择警车" :visible.sync="policeChooseCarVisible" :before-close="cancel" :modal="true"
- :modal-append-to-body="false" :close-on-click-modal="false" class="choose-policeCar-box">
+ :modal-append-to-body="true" :append-to-body="true" :close-on-click-modal="false" class="choose-policeCar-box">
<div>
<div class="input-box">
<el-input size="small" ref="searchTreeInput" v-model="carRemark" placeholder="请输入描述"
@@ -33,7 +33,7 @@
</div>
</div>
- <div class="police-btn-box">
+ <div class="btn-box">
<el-button @click="determine" v-show="!isChoosePoliceElementDisabled">确定</el-button>
<el-button @click="deletePoliceElement"
v-show="!isChoosePoliceElementDisabled && policeIconIsCreated">删除</el-button>
diff --git a/src/views/activity/components/policePersonChange.vue b/src/views/activity/components/policePersonChange.vue
index 4afdd56..2182d1e 100644
--- a/src/views/activity/components/policePersonChange.vue
+++ b/src/views/activity/components/policePersonChange.vue
@@ -1,7 +1,7 @@
<template>
<div>
<el-dialog title="选择警员" :visible.sync="policeChooseVisible" :before-close="cancel" :modal="true"
- :modal-append-to-body="false" :close-on-click-modal="false" class="choose-police-box">
+ :modal-append-to-body="true" :append-to-body="true" :close-on-click-modal="false" class="choose-police-box">
<div>
<div class="input-box">
<el-input size="small" ref="searchTreeInput" v-model="personRemark" placeholder="请输入描述"
@@ -36,7 +36,7 @@
</div>
</div>
- <div class="police-btn-box">
+ <div class="btn-box">
<el-button @click="determine" v-show="!isChoosePoliceElementDisabled">确定</el-button>
<el-button @click="deletePoliceElement"
v-show="!isChoosePoliceElementDisabled && policeIconIsCreated">删除</el-button>
@@ -181,7 +181,8 @@
securityId: this.showingSecurityId,
type: 3,
color: this.choosePoliceColor,
- width: this.pointAreaWidth
+ width: this.pointAreaWidth,
+ remark: this.personRemark
})
this.policeIconIsCreated = false
}
diff --git a/src/views/activity/components/polygonPlot.vue b/src/views/activity/components/polygonPlot.vue
index 257da4a..b97cbb1 100644
--- a/src/views/activity/components/polygonPlot.vue
+++ b/src/views/activity/components/polygonPlot.vue
@@ -1,74 +1,110 @@
<template>
<div>
<el-dialog title="修改标绘" :visible.sync="editPlotVisible" :modal="true" :close-on-click-modal="false"
- :modal-append-to-body="false" class="edit-plot-box">
+ :modal-append-to-body="true" :append-to-body="true" class="edit-plot-box">
<div>
- <div class="value-name-box">描述:</div>
- <div class="input-width-box" style="flex: 1;">
- <input style="width: 100%;" type="text" v-model="polygonRemark" placeholder="请输入..." />
+ <div class="line">
+ <div class="value-name-box">描述:</div>
+ <div class="input-width-box" style="flex: 1;">
+ <input style="width: 100%;" type="text" v-model="polygonRemark" placeholder="请输入..." />
+ </div>
+ </div>
+
+ <div class="line" v-show="customImageShow">
+ <div class="value-name-box">
+ 选择图片:
+ </div>
+ <div class="select-image" style="position: relative; display: flex; align-items: center;">
+ <el-button style="margin-top: 0; position: relative; background: transparent; border-color: #fff;"
+ @click="imagesListShow = !imagesListShow">
+ <img :src="curImgUrl" alt=""
+ style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; z-index: 999; width: 20px; height: 20px;">
+ </el-button>
+ <images-select v-show="imagesListShow" @curClick="curClick"></images-select>
+ </div>
+ </div>
+
+ <div class="line">
+ <div class="value-name-box">选择标绘颜色:</div>
+ <div class="pick-color-box">
+ <el-color-picker v-model="choosePlotColor" :predefine="predefineColors" size="small">
+ </el-color-picker>
+ </div>
+ </div>
+
+ <div class="line">
+ <div class="value-name-box">设置透明度:</div>
+ <div class="alpha">
+ <el-slider :min="1" v-model="choosePlotColorAlpha" :format-tooltip="formatTooltip"></el-slider>
+ </div>
+ </div>
+
+ <div class="btn-box">
+ <el-button @click="savePlot">保存</el-button>
+ <el-button @click="editPlot">编辑</el-button>
+ <el-button @click="deletePlot">删除</el-button>
+ <el-button @click="editPlotVisible = false">取消</el-button>
</div>
</div>
- <div>
- <div class="value-name-box">选择标绘颜色:</div>
- <div class="pick-color-box">
- <el-color-picker v-model="choosePlotColor" :predefine="predefineColors" size="small">
- </el-color-picker>
- </div>
- </div>
-
- <div>
- <div class="value-name-box">设置透明度:</div>
- <div class="alpha">
- <el-slider :min="1" v-model="choosePlotColorAlpha" :format-tooltip="formatTooltip"></el-slider>
- </div>
- </div>
-
- <div class="edit-plot-btn-box">
- <el-button @click="savePlot">保存</el-button>
- <el-button @click="editPlot">编辑</el-button>
- <el-button @click="deletePlot">删除</el-button>
- <el-button @click="editPlotVisible = false">取消</el-button>
- </div>
</el-dialog>
<el-dialog title="新增标绘" :visible.sync="polygonAddVisible" :modal="true" :close-on-click-modal="false"
- :modal-append-to-body="false" class="add-polygon-box" :before-close="cancelSavePolygon">
- <div class="line">
- <div class="value-name-box">描述:</div>
- <div class="input-width-box" style="flex: 1;">
- <input style="width: 100%;" type="text" v-model="polygonRemark" placeholder="请输入..." />
+ :modal-append-to-body="true" :append-to-body="true" class="add-polygon-box" :before-close="cancelSavePolygon">
+
+ <div>
+ <div class="line">
+ <div class="value-name-box">描述:</div>
+ <div class="input-width-box" style="flex: 1;">
+ <input style="width: 100%;" type="text" v-model="polygonRemark" placeholder="请输入..." />
+ </div>
+ </div>
+
+ <div class="line" v-show="isNeedPolygonType">
+ <div class="value-name-box">选择类型:</div>
+ <div class="select-type">
+ <el-select size="small" v-model="polygonAreaType" placeholder="请选择区域类型">
+ <el-option v-for="item in polygonAreaOption" :key="item.value" :label="item.label"
+ :value="item.value"></el-option>
+ </el-select>
+ </div>
+ </div>
+
+ <div class="line" v-show="customImageShow">
+ <div class="value-name-box">
+ 选择图片:
+ </div>
+ <div class="select-image" style="position: relative; display: flex; align-items: center;">
+ <el-button style="margin-top: 0; position: relative; background: transparent; border-color: #fff;"
+ @click="imagesListShow = !imagesListShow">
+ <img :src="curImgUrl" alt=""
+ style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; z-index: 999; width: 20px; height: 20px;">
+ </el-button>
+ <images-select v-show="imagesListShow" @curClick="curClick"></images-select>
+ </div>
+ </div>
+
+ <div class="line">
+ <div class="value-name-box">选择标绘颜色:</div>
+ <div class="pick-color-box">
+ <el-color-picker v-model="choosePlotColor" :predefine="predefineColors" size="small">
+ </el-color-picker>
+ </div>
+ </div>
+
+ <div class="line">
+ <div class="value-name-box">设置透明度:</div>
+ <div class="alpha">
+ <el-slider :min="1" v-model="choosePlotColorAlpha" :format-tooltip="formatTooltip"></el-slider>
+ </div>
+ </div>
+
+ <div class="btn-box">
+ <el-button @click="savePolygonInfo">保存</el-button>
+ <el-button @click="cancelSavePolygon">取消</el-button>
</div>
</div>
- <div class="line" v-show="isNeedPolygonType">
- <div class="value-name-box">选择类型:</div>
- <div class="select-type">
- <el-select size="small" v-model="polygonAreaType" placeholder="请选择区域类型">
- <el-option v-for="item in polygonAreaOption" :key="item.value" :label="item.label"
- :value="item.value"></el-option>
- </el-select>
- </div>
- </div>
-
- <div class="line">
- <div class="value-name-box">选择标绘颜色:</div>
- <div class="pick-color-box">
- <el-color-picker v-model="choosePlotColor" :predefine="predefineColors" size="small">
- </el-color-picker>
- </div>
- </div>
- <div class="line">
- <div class="value-name-box">设置透明度:</div>
- <div class="alpha">
- <el-slider :min="1" v-model="choosePlotColorAlpha" :format-tooltip="formatTooltip"></el-slider>
- </div>
- </div>
-
- <div class="add-polygon-btn-box">
- <el-button @click="savePolygonInfo">保存</el-button>
- <el-button @click="cancelSavePolygon">取消</el-button>
- </div>
</el-dialog>
</div>
</template>
@@ -125,13 +161,23 @@
}],
plotId: '',
+ customImageShow: false,
+ imagesListShow: false,
+
+ curImgUrl: '/img/icon/custom.png'
}
},
methods: {
+ curClick (item) {
+ this.curImgUrl = item.url
+
+ this.imagesListShow = false
+ },
+
addPointPopupShow (type, positions) {
polygonAltArray = `${positions.alt},${positions.alt}`
polygonPlotData = `${positions.lng} ${positions.lat}`
-
+ this.customImageShow = false
let color = ''
if (type == 'icon1') {
@@ -142,6 +188,10 @@
color = '#ff0000'
} else if (type == 'icon3') {
this.plotSaveType = 8
+ color = '#ff0000'
+ } else if (type == 'icon4') {
+ this.customImageShow = true
+ this.plotSaveType = 11
color = '#ff0000'
} else {
color = '#1e32e6'
@@ -161,6 +211,7 @@
this.choosePlotColor = '#409EFF'
this.polygonRemark = ''
this.choosePlotColorAlpha = 48
+ this.customImageShow = false
if (type == 5) {
this.polygonAreaType = 1
@@ -176,7 +227,12 @@
setCurOver (e) {
plotOverlayData = e
- this.polygonRemark = e.overlay.attrParams.remark
+ this.polygonRemark = e.overlay.attrParams.item.remark
+
+ this.curImgUrl = e.overlay.icon
+
+ if (e.overlay.attrParams.item.type == 11) this.customImageShow = true
+
this.choosePlotColor = e.overlay.attrParams.color != '' ? e.overlay.attrParams.color.slice(0, 7) : '#409EFF'
this.choosePlotColorAlpha = e.overlay.attrParams.color != '' ? Number(e.overlay.attrParams.color.split(',')[1]) : 100
@@ -247,7 +303,8 @@
this.$parent.updateSecurityPlot({
id: plotOverlayData.overlay.attrParams.id,
color: this.choosePlotColor + ',' + this.choosePlotColorAlpha,
- remark: this.polygonRemark
+ remark: this.polygonRemark,
+ icon: this.curImgUrl
}, plotOverlayData.overlay)
this.editPlotVisible = false
},
@@ -266,6 +323,7 @@
// 保存绘制区域
savePolygonInfo () {
let positionStr = ''
+ let iconUrl = {}
if (this.plotSaveType >= 1 && this.plotSaveType <= 4) {
positionStr = polygonPlotData
} else if (this.plotSaveType == 5) {
@@ -274,6 +332,9 @@
positionStr = polygonPlotData + ',' + polygonPlotData
} else if (this.plotSaveType == 10) {
positionStr = polygonPlotData
+ } else if (this.plotSaveType == 11) {
+ positionStr = polygonPlotData + ',' + polygonPlotData
+ iconUrl = { iconUrl: this.curImgUrl }
}
this.addSecurityPlot({
@@ -283,7 +344,8 @@
color: this.choosePlotColor + ',' + this.choosePlotColorAlpha,
remark: this.polygonRemark,
areaType: this.polygonAreaType,
- altitude: polygonAltArray
+ altitude: polygonAltArray,
+ ...iconUrl
})
this.polygonAddVisible = false
},
diff --git a/src/views/activity/components/polylinePlot.vue b/src/views/activity/components/polylinePlot.vue
index 6353cdc..2b784a8 100644
--- a/src/views/activity/components/polylinePlot.vue
+++ b/src/views/activity/components/polylinePlot.vue
@@ -4,34 +4,36 @@
<template>
<div>
<el-dialog :title="lineEditTitle" :visible.sync="lineEditVisible" :modal="true" :close-on-click-modal="false"
- :modal-append-to-body="false" class="edit-line-box" :before-close="cancelSaveLine">
+ :modal-append-to-body="true" :append-to-body="true" class="edit-line-box" :before-close="cancelSaveLine">
<div>
- <div class="value-name-box">描述:</div>
- <div class="input-width-box" style="flex: 1;">
- <input style="width: 100%;" type="text" v-model="lineRemark" placeholder="请输入..." />
+ <div class="line">
+ <div class="value-name-box">描述:</div>
+ <div class="input-width-box" style="flex: 1;">
+ <input style="width: 100%;" type="text" v-model="lineRemark" placeholder="请输入..." />
+ </div>
</div>
- </div>
- <div>
- <div class="value-name-box">设置缓冲范围:</div>
- <div class="input-width-box">
- <input type="text" v-model="lineWidth" placeholder="请输入..." />
+ <div class="line">
+ <div class="value-name-box">设置缓冲范围:</div>
+ <div class="input-width-box">
+ <input type="text" v-model="lineWidth" placeholder="请输入..." />
+ </div>
+ <div class="units">米</div>
</div>
- <div class="units">米</div>
- </div>
- <div>
- <div class="value-name-box">选择范围颜色:</div>
- <div class="pick-color-box">
- <el-color-picker v-model="chooseColor" :predefine="predefineColors" size="small">
- </el-color-picker>
+ <div class="line">
+ <div class="value-name-box">选择范围颜色:</div>
+ <div class="pick-color-box">
+ <el-color-picker v-model="chooseColor" :predefine="predefineColors" size="small">
+ </el-color-picker>
+ </div>
</div>
- </div>
- <div class="edit-line-btn-box">
- <el-button @click="lookStartVideo" v-show="isLineEdit">查看视频</el-button>
- <el-button @click="editLineInfo" v-show="isLineEdit">编辑</el-button>
- <el-button @click="saveLineInfo" v-show="isLineEdit">保存</el-button>
- <el-button @click="deleteLine" v-show="isLineEdit">删除</el-button>
- <el-button @click="addLineInfo" v-show="!isLineEdit">添加</el-button>
- <el-button @click="cancelSaveLine">取消</el-button>
+ <div class="btn-box">
+ <el-button @click="lookStartVideo" v-show="isLineEdit">查看视频</el-button>
+ <el-button @click="editLineInfo" v-show="isLineEdit">编辑</el-button>
+ <el-button @click="saveLineInfo" v-show="isLineEdit">保存</el-button>
+ <el-button @click="deleteLine" v-show="isLineEdit">删除</el-button>
+ <el-button @click="addLineInfo" v-show="!isLineEdit">添加</el-button>
+ <el-button @click="cancelSaveLine">取消</el-button>
+ </div>
</div>
</el-dialog>
</div>
diff --git a/src/views/activity/components/publicIndex.vue b/src/views/activity/components/publicIndex.vue
index 576c20d..8a3f6e1 100644
--- a/src/views/activity/components/publicIndex.vue
+++ b/src/views/activity/components/publicIndex.vue
@@ -321,6 +321,7 @@
this.$parent.normalPeopleList = res.data.data.filter(item => item.type == 6)
this.$parent.protectedPeopleList = res.data.data.filter(item => item.type == 7)
this.$parent.dangerousPeopleList = res.data.data.filter(item => item.type == 8)
+ this.$parent.customList = res.data.data.filter(item => item.type == 11)
// 作战标绘
this.$parent.attackArrowList = res.data.data.filter(item => item.type == 1)
@@ -331,11 +332,11 @@
this.$parent.borkenList = res.data.data.filter(item => item.type == 10)
this.isHaveArrow = res.data.data.some(item => {
- return item.type != 6 && item.type != 7 && item.type != 8
+ return item.type != 6 && item.type != 7 && item.type != 8 && item.type != 11
})
this.isHavePointDraw = res.data.data.some(item => {
- return item.type == 6 || item.type == 7 || item.type == 8
+ return item.type == 6 || item.type == 7 || item.type == 8 || item.type == 11
})
let allData = res.data.data
@@ -363,13 +364,20 @@
} else if (item.type == 5) {
this.initLayersCoverage('Polygon', color, item, position, altitude)
continue
- } else if (item.type == 6 || item.type == 7 || item.type == 8) {
+ } else if (item.type == 6 || item.type == 7 || item.type == 8 || item.type == 11) {
let iconImgName = item.type == 6 ? 'ptqz' : item.type == 7 ? 'bhdx' : 'wxrw'
+ let icon = ''
+
+ if (item.type == 11) {
+ icon = item.iconUrl
+ } else {
+ icon = `/img/icon/${iconImgName}.png`
+ }
const height = item.altitude.split(',')
position = position.split(';')[0].split(',')
- let chooseArrow = new global.DC.Billboard(new global.DC.Position(Number(position[0]), Number(position[1]), Number(height[0])), `/img/icon/${iconImgName}.png`)
+ let chooseArrow = new global.DC.Billboard(new global.DC.Position(Number(position[0]), Number(position[1]), Number(height[0])), icon)
chooseArrow.customType = 'billboard'
chooseArrow.setStyle({
color: color.curColor,
@@ -377,6 +385,8 @@
chooseArrow.attrParams = { id: item.id, color: item.color, item }
chooseArrow.size = [32, 32]
chooseArrow.on(global.DC.MouseEventType.CLICK, this.reeditArrowClick)
+ chooseArrow.on(global.DC.MouseEventType.MOUSE_OVER, this.pointMouseOver)
+ chooseArrow.on(global.DC.MouseEventType.MOUSE_OUT, this.pointMouseOut)
pointCircleCarLayer.addOverlay(chooseArrow)
} else if (item.type == 10) {
this.initLayersCoverage('Polyline', color, item, position, altitude)
@@ -406,7 +416,7 @@
},
initLayersCoverage (type, color, params, position, altitude) {
- if (altitude.length) position = position.split(';').map((item, index) => `${item},${altitude[index]}`).join(';')
+ if (altitude && altitude.length) position = position.split(';').map((item, index) => `${item},${altitude[index]}`).join(';')
let coverage = new global.DC[type](position)
if (type == 'Polygon') {
@@ -442,6 +452,7 @@
}
coverage.attrParams = { id: params.id, color: params.color, item: params }
coverage.on(global.DC.MouseEventType.CLICK, this.reeditArrowClick)
+
arrowsListLayer.addOverlay(coverage)
return coverage
@@ -533,17 +544,29 @@
pointMouseOver (e) {
this.$store.commit('SET_ACTIVITYPOLICEPOPUP', true)
let hoverData = {}
- if ('carId' in e.overlay.attrParams.data) {
- hoverData = policecarOption.filter(item => item.value == e.overlay.attrParams.data.carId)[0]
- hoverData.policeData = { 'name': 'none' }
- hoverData.policeStationName = 'none'
+
+ hoverData.billboard = false
+
+ if (e.overlay.attrParams.item.type == 6 || e.overlay.attrParams.item.type == 7 || e.overlay.attrParams.item.type == 8 || e.overlay.attrParams.item.type == 11) {
+ hoverData.billboard = true
} else {
- let policeArr = this.filterTree(this.policeTreeData)
- hoverData.policeData = policeArr.filter(item => item.id == e.overlay.attrParams.data.policemanId)[0]
- hoverData.policeStationName = policeArr.filter(item => item.id == policeArr.filter(item => item.id == e.overlay.attrParams.data.policemanId)[0].parentId)[0].name
- hoverData.carType = 'none'
- hoverData.label = 'none'
+ if ('carId' in e.overlay.attrParams.data) {
+ hoverData = policecarOption.filter(item => item.value == e.overlay.attrParams.data.carId)[0]
+ hoverData.policeData = { 'name': 'none' }
+ hoverData.policeStationName = 'none'
+ } else {
+ let policeArr = this.filterTree(this.policeTreeData)
+ hoverData.policeData = policeArr.filter(item => item.id == e.overlay.attrParams.data.policemanId)[0]
+ hoverData.policeStationName = policeArr.filter(item => item.id == policeArr.filter(item => item.id == e.overlay.attrParams.data.policemanId)[0].parentId)[0].name
+ hoverData.carType = 'none'
+ hoverData.label = 'none'
+ }
}
+
+ hoverData.Data = e.overlay.attrParams
+
+ console.log(hoverData, 95999)
+
this.$store.commit('SET_ACTIVITYPOLICEPOPUPDATA', hoverData)
var popup = new global.DC.DivForms(global.viewer, {
@@ -760,7 +783,7 @@
let positionArr = positionStr.split(" ")
let positionObj = {}
if (iconName == 'activity') {
- positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: data.altitude, url: '/img/icon/activity.png' }
+ positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: data.altitude, url: '/img/icon/activity.png', data: data }
} else if (iconName == 'policeman') {
positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: data.altitude, url: '/img/icon/police-people.png', data: data }
} else if (iconName == 'policecar') {
diff --git a/src/views/activity/components/twoDrawBtnBox.vue b/src/views/activity/components/twoDrawBtnBox.vue
index 18532aa..2a53c24 100644
--- a/src/views/activity/components/twoDrawBtnBox.vue
+++ b/src/views/activity/components/twoDrawBtnBox.vue
@@ -24,6 +24,9 @@
<li>
<button @click="drawThreeArrow('billboard', 'icon', 'icon3')" title="危险人物">危险人物</button>
</li>
+ <li>
+ <button @click="drawThreeArrow('billboard', 'icon', 'icon4')" title="自定义图片标注">自定义图片标注</button>
+ </li>
</ul>
</div>
<div>
@@ -208,6 +211,10 @@
imgUrl = 'wxrw'
material = global.DC.Namespace.Cesium.Color.fromBytes(255, 0, 0, 255)
break
+ case 'icon4':
+ imgUrl = 'custom'
+ material = global.DC.Namespace.Cesium.Color.fromBytes(255, 0, 0, 255)
+ break
}
if (type == 'polygon') {
@@ -230,7 +237,8 @@
material: global.DC.Namespace.Cesium.Color.fromBytes(64, 158, 255, 122),
outline: true,
outlineColor: global.DC.Namespace.Cesium.Color.fromBytes(64, 158, 255, 255),
- outlineWidth: 4.0,
+ outlineWidth: 1.0,
+ height: 0
})
} else if (type == 'brokenline') {
drawThreeTool && drawThreeTool.draw('polyline', overlay => {
@@ -353,9 +361,11 @@
addPlotOverlayData.attrParams = { id: item.id, color: item.color, item }
addPlotOverlayData.on(global.DC.MouseEventType.CLICK, this.$parent.reeditArrowClick)
- if (item.type == 6 || item.type == 7 || item.type == 8) {
+ if (item.type == 6 || item.type == 7 || item.type == 8 || item.type == 11) {
const height = item.altitude.split(',')
let position = item.position.slice(12, item.position.length - 2).split(',')[0].split(' ')
+
+ if (item.iconUrl != '') addPlotOverlayData.icon = item.iconUrl
addPlotOverlayData.setStyle({
color: color
@@ -366,6 +376,9 @@
lat: Number(position[1]),
alt: Number(height[0]),
}
+
+ addPlotOverlayData.on(global.DC.MouseEventType.MOUSE_OVER, this.$parent.pointMouseOver)
+ addPlotOverlayData.on(global.DC.MouseEventType.MOUSE_OUT, this.$parent.pointMouseOut)
this.$parent.isHaveFactor = true
} else {
@@ -510,6 +523,14 @@
"font": `${params.width}px sans-serif`
})
}
+
+ if ('icon' in params && params.icon != '') {
+ overlay.icon = params.icon
+ }
+
+ if ('remark' in params && params.remark != '') {
+ overlay.attrParams.item.remark = params.remark
+ }
},
// 修改警车样式
@@ -585,6 +606,10 @@
overlay.remove()
}
}
+
+ if ('remark' in params) {
+ overlay.attrParams.data.remark = params.remark
+ }
},
// 修改警车
diff --git a/src/views/activity/index.vue b/src/views/activity/index.vue
index e8f22a3..4cca851 100644
--- a/src/views/activity/index.vue
+++ b/src/views/activity/index.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-24 16:36:55
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2023-04-07 09:51:28
+ * @LastEditTime: 2023-04-07 16:45:36
* @FilePath: \srs-police-affairs\src\views\activity\index.vue
* @Description:
*
@@ -81,6 +81,17 @@
:key="dangerousItem.id"
@click="carOrPoliceItemClick(dangerousItem.position, 'people')">
危险人物{{ index + 1 }}
+ </li>
+ </ul>
+ </el-collapse-item>
+ </el-collapse>
+
+ <el-collapse v-model="elementCustomIndex" accordion>
+ <el-collapse-item title="自定义图片标注" :name="wxrw">
+ <ul>
+ <li v-for="(item, index) in customList" :key="item.id"
+ @click="carOrPoliceItemClick(item.position, 'people')">
+ 自定义图片标注{{ index + 1 }}
</li>
</ul>
</el-collapse-item>
@@ -222,6 +233,7 @@
elementNormalIndex: '',
elementProtectedIndex: '',
elementDangerousIndex: '',
+ elementCustomIndex: '',
attackArrowIndex: '',
doubleArrowIndex: '',
tailedAttackArrowIndex: '',
@@ -244,6 +256,7 @@
normalPeopleList: [],
protectedPeopleList: [],
dangerousPeopleList: [],
+ customList: [],
boxShow: true,
searchActivity: '',
currentPage: 1,
@@ -440,6 +453,7 @@
this.normalPeopleList = res.data.data.filter(item => item.type == 6)
this.protectedPeopleList = res.data.data.filter(item => item.type == 7)
this.dangerousPeopleList = res.data.data.filter(item => item.type == 8)
+ this.customList = res.data.data.filter(item => item.type == 11)
// 作战标绘
this.attackArrowList = res.data.data.filter(item => item.type == 1)
--
Gitblit v1.9.3