无人机管理后台前端(已迁走)
张含笑
2025-11-18 07218e374025c477daac32dd3a96178c51b67bca
feat:添加交叉面提示
2 files modified
50 ■■■■ changed files
src/views/layerManagement/components/rightEdit.vue 22 ●●●●● patch | view | raw | blame | history
src/views/layerManagement/index.vue 28 ●●●● patch | view | raw | blame | history
src/views/layerManagement/components/rightEdit.vue
@@ -245,6 +245,9 @@
  EventBus.emit('gettreeDataApi');
};
const submitHandle = () => {
if(layerParams.value.crossSurface){
  return ElMessage.warning('测区不支持交叉面')
}
  if (!formData.value.folder_id) {
    ElMessage.error('请选择文件夹');
    return;
@@ -280,19 +283,21 @@
  if (layerParams.value.decideWhetherToAddOrEdit === 2) {
    params.id = detailData.value.id;
  }
  if (layerParams.value.decideWhetherToAddOrEdit === 1) {
    //围栏新增
    addFenceApi(params)
      .then(res => {
        ElMessage.success('新增成功');
        EventBus.emit('gettreeDataApi');
        clearAllData();
        emit('callParentMethod');
       if(res.data.code ===0 ){
          ElMessage.success('新增成功');
          EventBus.emit('gettreeDataApi');
          loading.value = false;
          emit('update:loading', false);
          clearAllData();
          emit('callParentMethod');
 }
      })
      .catch(err => {
        ElMessage.error('新增失败,请重试');
        console.error('新增失败:', err);
      })
      .finally(() => {
        loading.value = false;
@@ -302,14 +307,17 @@
    //围栏编辑
      deitFenceApi(params)
      .then(res => {
      if(res.data.code === 0){
        ElMessage.success('编辑成功');
        EventBus.emit('gettreeDataApi');
        clearAllData();
        emit('callParentMethod');
        loading.value = false;
         emit('update:loading', false);
      }
      })
      .catch(err => {
        ElMessage.error('编辑失败,请重试');
        console.error('编辑失败:', err);
      })
      .finally(() => {
        loading.value = false;
src/views/layerManagement/index.vue
@@ -11,7 +11,15 @@
      <div class="mapContainer" v-loading="isPageLoading"
      element-loading-background="rgba(0, 0, 0, 0.5)"
      element-loading-text="加载中...">
        <div class="tool-tip" v-if="layerParams.addNest">点击地图生成测绘区域</div>
      <div class="tool-tip warning" v-show="isShowWaringTip">
          <span class="icon">
            <el-icon><WarningFilled /></el-icon>
          </span>
          <span>测区不支持交叉面</span>
        </div>
         <div class="tool-tip" v-if="!isShowWaringTip && layerParams.addNest">
          {{ showToolTipText }}
        </div>
        <div id="layMap" class="ztzf-cesium"></div>
        <leftList
          v-if="
@@ -61,6 +69,7 @@
const store = useStore();
const userInfo = computed(() => store.getters.userInfo);
const areaCode = userInfo.value?.detail?.areaCode || '';
const showToolTipText = ref('点击地图生成测绘区域')
// 红色警告交叉面提示窗
const isShowWaringTip = ref(false);
const activeName = ref('自定义识别区');
@@ -103,6 +112,7 @@
  isDetailShow: false,
  isSingleLocating:false , //是否是单个定位
  currentLocationFolderId:null,
  crossSurface:false,//是否交叉面
});
const resetCheck = ref(false);
const handleClick = tab => {
@@ -375,7 +385,6 @@
};
// 编辑/绘制
const loadPlanarRoute = async (positions = null, save = false) => {
  isShowWaringTip.value = false;
  if (positions) {
    curPolygonPosition = positions.map(item => {
      let cartographic = Cesium.Cartographic.fromCartesian(item);
@@ -412,6 +421,7 @@
};
drawPolygonExample.subscribe('getShowWaringTip', data => {
  isShowWaringTip.value = data;
  layerParams.value.crossSurface = data
});
const throttleLoadPlanarRoute = throttle(loadPlanarRoute, 200);
drawPolygonExample.subscribe('getPolygonPositions', data => {
@@ -444,7 +454,7 @@
// 添加loading
const isPageLoading = ref(false);
const handleLoadingChange = (status) => {
  isPageLoading.value = status;
  isPageLoading.value = status;
};
provide('layerParams', layerParams);
onMounted(() => {
@@ -518,6 +528,18 @@
  position: relative;
  width: 100%;
  height: 80vh;
    .warning {
    position: absolute;
    top: 234px;
    color: #fff;
    background: rgba(140, 0, 0, 0.4) !important;
    .icon {
      display: flex;
      align-items: center;
      color: #ff1f1f;
    }
  }
  #layMap {
    width: 100%;
    height: 100%;