shuishen
2023-04-09 85fb13abbeadc1765d2c0056ba99c6c19aa35dfd
电子沙盘的调整
13 files modified
1 files added
1153 ■■■■ changed files
public/img/icon/custom.png patch | view | raw | blame | history
src/components/imagesSelect/index.vue 12 ●●●●● patch | view | raw | blame | history
src/components/map/components/activityPolicePopup.vue 25 ●●●● patch | view | raw | blame | history
src/components/map/index.vue 32 ●●●●● patch | view | raw | blame | history
src/styles/base/index.scss 463 ●●●●● patch | view | raw | blame | history
src/styles/media/index.scss 250 ●●●●● patch | view | raw | blame | history
src/views/activity/components/drawBtnBox.vue 26 ●●●●● patch | view | raw | blame | history
src/views/activity/components/policeCarChange.vue 4 ●●●● patch | view | raw | blame | history
src/views/activity/components/policePersonChange.vue 7 ●●●●● patch | view | raw | blame | history
src/views/activity/components/polygonPlot.vue 186 ●●●●● patch | view | raw | blame | history
src/views/activity/components/polylinePlot.vue 50 ●●●● patch | view | raw | blame | history
src/views/activity/components/publicIndex.vue 53 ●●●● patch | view | raw | blame | history
src/views/activity/components/twoDrawBtnBox.vue 29 ●●●●● patch | view | raw | blame | history
src/views/activity/index.vue 16 ●●●●● patch | view | raw | blame | history
public/img/icon/custom.png
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; //溢出不换行
        }
    }
}
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;
                }
            }
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`,
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 {
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));
                                }
                            }
                        }
                    }
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
            }
        },
        // 修改警车
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>
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
                }
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
        },
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>
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') {
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
            }
        },
        // 修改警车
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)