无人机管理后台前端(已迁走)
chenyao
2025-11-28 cf55e57ac8e892c321cc9eeb79e14b39e7d80e82
src/views/layerManagement/components/rightEdit.vue
@@ -1,5 +1,5 @@
<template>
  <div class="rightContainer">
  <div class="rightContainer"  >
    <div class="contenttitle">{{ layerParams.fenceType === 1 ? '识别区' : '禁飞区' }}信息</div>
    <div class="centerBox">
      <div class="itemRow">
@@ -122,8 +122,10 @@
      </div>
    </div>
    <div class="btnGroups">
      <img src="/src/assets/images/layerManagement/savebtn.svg" alt="" @click="submitHandle" />
      <img src="/src/assets/images/layerManagement/cancelbtn.svg" @click="cancelHandel" alt="" />
      <img v-if="!layerParams.editingIsProhibited" src="/src/assets/images/layerManagement/savebtn.svg" alt="" @click="submitHandle" />
     <img v-if="layerParams.editingIsProhibited" src="/src/assets/images/layerManagement/closeBtn.svg" @click="cancelHandel" alt="" />
      <img v-else src="/src/assets/images/layerManagement/cancelbtn.svg" @click="cancelHandel" alt="" />
    </div>
  </div>
</template>
@@ -133,7 +135,7 @@
import dayjs from 'dayjs';
import { deitFenceApi, addFenceApi } from '@/api/layer/index';
import EventBus from '@/utils/eventBus';
const emit = defineEmits(['callParentMethod']);
const emit = defineEmits(['callParentMethod','update:loading']);
const layerParams = inject('layerParams');
const options = ref([]);
const timeValue = ref('');
@@ -150,6 +152,7 @@
  geo_data: '',
});
const loading = ref(false);
const detailData = ref(null);
const fenceArea = ref(0);
detailData.value = layerParams.value.editDetailData;
@@ -237,11 +240,16 @@
  layerParams.value.editingIsProhibited = false;
};
const cancelHandel = () => {
loading.value = false
 emit('update:loading', false);
  clearAllData();
  emit('callParentMethod');
  EventBus.emit('gettreeDataApi');
};
const submitHandle = () => {
if(layerParams.value.crossSurface){
  return ElMessage.warning('测区不支持交叉面')
}
  if (!formData.value.folder_id) {
    ElMessage.error('请选择文件夹');
    return;
@@ -258,6 +266,8 @@
    ElMessage.error('请绘制区域');
    return;
  }
  loading.value = true
  emit('update:loading', true);
  const params = {
    folder_id: formData.value.folder_id,
    name: formData.value.name,
@@ -277,22 +287,45 @@
  }
  if (layerParams.value.decideWhetherToAddOrEdit === 1) {
    //围栏新增
    addFenceApi(params).then(res => {
      ElMessage.success('新增成功');
      EventBus.emit('gettreeDataApi');
      clearAllData();
      emit('callParentMethod');
    });
    addFenceApi(params)
      .then(res => {
       if(res.data.code ===0 ){
          ElMessage.success('新增成功');
          EventBus.emit('gettreeDataApi');
          loading.value = false;
          emit('update:loading', false);
          clearAllData();
          emit('callParentMethod');
 }
      })
      .catch(err => {
        ElMessage.error('新增失败,请重试');
      })
      .finally(() => {
        loading.value = false;
         emit('update:loading', false);
      });
  } else if (layerParams.value.decideWhetherToAddOrEdit === 2) {
    //围栏编辑
    deitFenceApi(params).then(res => {
      ElMessage.success('编辑成功');
      EventBus.emit('gettreeDataApi');
      clearAllData();
      emit('callParentMethod');
    });
  }
      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('编辑失败,请重试');
      })
      .finally(() => {
        loading.value = false;
         emit('update:loading', false);
      });
        }
};
onMounted(() => {
  // 获取判断状态(默认设为 1)
@@ -344,11 +377,17 @@
  backdrop-filter: blur(4px);
  border-radius: 8px 8px 8px 8px;
  padding: 16px 12px;
:deep(.el-select__wrapper.is-disabled .el-select__selected-item){
color: rgba(255,255,255,0.37) !important;
}
  :deep(.el-textarea__inner) {
    background: transparent !important;
    color: #ffffff !important;
    color: #ffffff;
  }
  :deep(.el-textarea.is-disabled .el-textarea__inner){
    color: var(--el-disabled-text-color) !important;
}
  .contenttitle {
    font-family: Source Han Sans CN, Source Han Sans CN;
    font-weight: bold;
@@ -420,6 +459,7 @@
      height: 39px;
      cursor: pointer;
    }
  }
}
</style>