|
@@ -3,7 +3,7 @@
|
|
|
|
|
|
|
|
<LeftMenu :dataList="dataList"></LeftMenu>
|
|
<LeftMenu :dataList="dataList"></LeftMenu>
|
|
|
|
|
|
|
|
- <VueJsonEditor v-if="editFlag" :editDataList="editDataList"></VueJsonEditor>
|
|
|
|
|
|
|
+ <VueJsonEditor v-if="editWinFlag" :editDataList="editDataList"></VueJsonEditor>
|
|
|
|
|
|
|
|
<!-- 十字准线元素 -->
|
|
<!-- 十字准线元素 -->
|
|
|
<div class="map-center-crosshair" v-if="btn_Aim_show"></div>
|
|
<div class="map-center-crosshair" v-if="btn_Aim_show"></div>
|
|
@@ -21,7 +21,7 @@
|
|
|
<Coin />
|
|
<Coin />
|
|
|
</el-icon>
|
|
</el-icon>
|
|
|
<el-divider></el-divider>
|
|
<el-divider></el-divider>
|
|
|
- <el-icon size="20" :color="editFlag == true ? '#067bc9' : '#000'" title="是否编辑图层数据" class="icon" @click="toggleItem('3');">
|
|
|
|
|
|
|
+ <el-icon size="20" :color="editFlag == true ? '#067bc9' : '#000'" title="编辑图层数据" class="icon" @click="toggleItem('3');">
|
|
|
<Edit />
|
|
<Edit />
|
|
|
</el-icon>
|
|
</el-icon>
|
|
|
<el-divider></el-divider>
|
|
<el-divider></el-divider>
|
|
@@ -60,6 +60,7 @@ export default {
|
|
|
mapEditDraw: null,
|
|
mapEditDraw: null,
|
|
|
editDataList: {},
|
|
editDataList: {},
|
|
|
editFlag: false,
|
|
editFlag: false,
|
|
|
|
|
+ editWinFlag: false,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
mounted() {
|
|
mounted() {
|
|
@@ -86,6 +87,8 @@ export default {
|
|
|
if(res.code == 200){
|
|
if(res.code == 200){
|
|
|
ElMessage.success("保存成功");
|
|
ElMessage.success("保存成功");
|
|
|
this.getVectorData();
|
|
this.getVectorData();
|
|
|
|
|
+ // 清空绘制工具
|
|
|
|
|
+ this.mapEditDraw.clearAll();
|
|
|
}else{
|
|
}else{
|
|
|
ElMessage.error(res.msg);
|
|
ElMessage.error(res.msg);
|
|
|
}
|
|
}
|
|
@@ -94,6 +97,7 @@ export default {
|
|
|
closeJsonEditor(){
|
|
closeJsonEditor(){
|
|
|
// 清空编辑数据
|
|
// 清空编辑数据
|
|
|
this.editDataList = {};
|
|
this.editDataList = {};
|
|
|
|
|
+ this.editWinFlag = false;
|
|
|
// 确保vector-data数据源存在且为有效的GeoJSON对象
|
|
// 确保vector-data数据源存在且为有效的GeoJSON对象
|
|
|
if (window.mapboxMap.getSource('vector-data') && this.dataList) {
|
|
if (window.mapboxMap.getSource('vector-data') && this.dataList) {
|
|
|
window.mapboxMap.getSource('vector-data').setData(this.dataList);
|
|
window.mapboxMap.getSource('vector-data').setData(this.dataList);
|
|
@@ -125,6 +129,9 @@ export default {
|
|
|
}else if(item == "3"){
|
|
}else if(item == "3"){
|
|
|
this.editDataList = {};
|
|
this.editDataList = {};
|
|
|
this.editFlag = !this.editFlag;
|
|
this.editFlag = !this.editFlag;
|
|
|
|
|
+ if(!this.editFlag){
|
|
|
|
|
+ this.editWinFlag = false;
|
|
|
|
|
+ }
|
|
|
this.toggleEditMode(this.editFlag);
|
|
this.toggleEditMode(this.editFlag);
|
|
|
window.mapboxMap.getSource('states').setData(this.areaDataList);
|
|
window.mapboxMap.getSource('states').setData(this.areaDataList);
|
|
|
window.mapboxMap.getSource('vector-data').setData(this.dataList);
|
|
window.mapboxMap.getSource('vector-data').setData(this.dataList);
|
|
@@ -207,10 +214,13 @@ export default {
|
|
|
// 编辑完成 → 自动接收最新图形
|
|
// 编辑完成 → 自动接收最新图形
|
|
|
onEditComplete: (data) => {
|
|
onEditComplete: (data) => {
|
|
|
// console.log("===mapEditDraw返回数据===:", data);
|
|
// console.log("===mapEditDraw返回数据===:", data);
|
|
|
- that.editDataList = data;
|
|
|
|
|
|
|
+ if(data.properties.dms_id){// 对dms_id进行判断
|
|
|
|
|
+ that.editDataList = data;
|
|
|
|
|
+ }
|
|
|
// 你可以在这里提交后端接口,将数据保存到数据库
|
|
// 你可以在这里提交后端接口,将数据保存到数据库
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+ window.mapEditDraw = that.mapEditDraw;
|
|
|
// console.log("mapEditDraw:", that.mapEditDraw);
|
|
// console.log("mapEditDraw:", that.mapEditDraw);
|
|
|
|
|
|
|
|
})
|
|
})
|
|
@@ -358,11 +368,18 @@ export default {
|
|
|
let that = this;
|
|
let that = this;
|
|
|
// that.editDataList = fet;
|
|
// that.editDataList = fet;
|
|
|
// console.log("仅获取 click 的要素:", e);
|
|
// console.log("仅获取 click 的要素:", e);
|
|
|
- if (that.editFlag) return;
|
|
|
|
|
// 关键:只查询 data-fill-layer,过滤掉所有其他图层
|
|
// 关键:只查询 data-fill-layer,过滤掉所有其他图层
|
|
|
const features = window.mapboxMap.queryRenderedFeatures(e.point, {
|
|
const features = window.mapboxMap.queryRenderedFeatures(e.point, {
|
|
|
layers: ['data-fill-layer'] // 只取这个图层
|
|
layers: ['data-fill-layer'] // 只取这个图层
|
|
|
});
|
|
});
|
|
|
|
|
+ if (that.editFlag){
|
|
|
|
|
+ if (features.length){
|
|
|
|
|
+ this.editWinFlag = true;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ // this.editWinFlag = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ return;
|
|
|
|
|
+ };
|
|
|
// console.log("仅获取e的要素:", e);
|
|
// console.log("仅获取e的要素:", e);
|
|
|
if (!features.length) return;
|
|
if (!features.length) return;
|
|
|
// 现在最多只有 1 个要素 → 绝对不会乱
|
|
// 现在最多只有 1 个要素 → 绝对不会乱
|
|
@@ -431,14 +448,18 @@ export default {
|
|
|
toggleEditMode(isEdit){
|
|
toggleEditMode(isEdit){
|
|
|
let that = this;
|
|
let that = this;
|
|
|
that.editFlag = isEdit;
|
|
that.editFlag = isEdit;
|
|
|
- // console.log("isEdit:", isEdit);
|
|
|
|
|
- if(isEdit){
|
|
|
|
|
- window.mapboxMap.off('click', that.mapClickValue)
|
|
|
|
|
- this.mapEditDraw.setEditLayerIds(['data-fill-layer']);
|
|
|
|
|
- }else{
|
|
|
|
|
- window.mapboxMap.on('click', that.mapClickValue);
|
|
|
|
|
- this.mapEditDraw.setEditLayerIds([]);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ console.log("isEdit:", isEdit);
|
|
|
|
|
+ // if(isEdit){
|
|
|
|
|
+ // this.editWinFlag = true;
|
|
|
|
|
+ // window.mapboxMap.off('click', that.mapClickValue)
|
|
|
|
|
+ // this.mapEditDraw.setEditLayerIds(['data-fill-layer']);
|
|
|
|
|
+ // }else{
|
|
|
|
|
+ // window.mapboxMap.on('click', that.mapClickValue);
|
|
|
|
|
+ // this.mapEditDraw.setEditLayerIds([]);
|
|
|
|
|
+ // }
|
|
|
|
|
+ window.mapboxMap.off('click', that.mapClickValue)
|
|
|
|
|
+ window.mapboxMap.on('click', that.mapClickValue);
|
|
|
|
|
+ this.mapEditDraw.setEditLayerIds(['data-fill-layer']);
|
|
|
that.mapEditDraw.isEdit(isEdit);
|
|
that.mapEditDraw.isEdit(isEdit);
|
|
|
|
|
|
|
|
},
|
|
},
|