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] 电子沙盘的调整
---
src/views/activity/components/polygonPlot.vue | 186 +++++++++++++++++++++++++++++++---------------
1 files changed, 124 insertions(+), 62 deletions(-)
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
},
--
Gitblit v1.9.3