无人机管理后台前端(已迁走)
张含笑
2025-10-31 96c2c1557cc87f7cbc47f32e0edd63b8b15a2a92
feat:修改提示
3 files modified
162 ■■■■■ changed files
src/views/layerManagement/components/folderFile.vue 14 ●●●● patch | view | raw | blame | history
src/views/layerManagement/components/leftList.vue 14 ●●●● patch | view | raw | blame | history
src/views/layerManagement/components/rightEdit.vue 134 ●●●●● patch | view | raw | blame | history
src/views/layerManagement/components/folderFile.vue
@@ -181,22 +181,12 @@
  if (layerParams.value.addAnEditingFolder === 1) {
    // 文件夹新增
    addFolderApi(params).then(res => {
      if (res.status === 200) {
        ElMessage({
          message: '新增成功',
          type: 'success',
        });
      }
           ElMessage.success('新增成功');
    });
  } else {
    //文件夹编辑
    deitFolderApi(params).then(res => {
      if (res.status === 200) {
        ElMessage({
          message: '编辑成功',
          type: 'success',
        });
      }
        ElMessage.success('编辑成功');
    });
  }
  clearAllData();
src/views/layerManagement/components/leftList.vue
@@ -199,23 +199,13 @@
let id = node.data.id;
if(node.data.level === 2 ){
deleteFolderApi(id).then(res => {
    if (res.status === 200) {
      ElMessage({
        message: '删除成功',
        type: 'success',
      });
    }
      ElMessage.success('删除成功');
  gettreeDataApi();
  });
}else if(node.data.level === 3){
deleteFenceApi(id).then(res => {
    if (res.status === 200) {
      ElMessage({
        message: '删除成功',
        type: 'success',
      });
    }
    ElMessage.success('删除成功');
  gettreeDataApi();
  });
}
src/views/layerManagement/components/rightEdit.vue
@@ -34,12 +34,11 @@
            popper-class="ztzf-layer-date-picker-popper"
            class="ztzf-layer-date-picker layertimer"
            v-model="timeValue"
             type="datetimerange"
              format="YYYY-MM-DD HH:mm"
            type="datetimerange"
            format="YYYY-MM-DD HH:mm"
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
          />
        </div>
      </div>
@@ -52,12 +51,10 @@
    </div>
    <div class="detailInfo">
      <div class="infpItem" v-if="layerParams.editNest">
        <div class="itemData">
          <div class="title">围栏面积</div>
          <div class="num">
            <span>{{ fenceArea }}</span
            > m²
            <span>{{ fenceArea }}</span> m²
          </div>
        </div>
      </div>
@@ -104,13 +101,13 @@
<script setup>
import { ElMessage } from 'element-plus';
import dayjs from 'dayjs'
import dayjs from 'dayjs';
import { deitFenceApi, addFenceApi } from '@/api/layer/index';
import EventBus from '@/utils/eventBus';
const emit = defineEmits(['callParentMethod']);
const layerParams = inject('layerParams');
const options = ref([]);
const timeValue = ref('')
const timeValue = ref('');
options.value = layerParams.value.folderOption;
const formData = ref({
  folder_id: '',
@@ -122,37 +119,36 @@
  control_start_time: '',
  control_end_time: '',
  geo_data: '',
  altitude:''
  altitude: '',
});
const detailData = ref(null);
const fenceArea = ref(0)
const fenceArea = ref(0);
detailData.value = layerParams.value.editDetailData;
fenceArea.value = layerParams.value.fenceArea
fenceArea.value = layerParams.value.fenceArea;
watch(
  () => layerParams.value.fenceArea,
  (newArea) => {
  newArea => {
    if (newArea !== undefined && newArea !== null) {
      fenceArea.value = newArea;
      formData.value.area = newArea;
      formData.value.area = newArea;
    }
  },
  { immediate: true }
  { immediate: true }
);
watch(
  () => timeValue.value,
  (newTimeArr) => {
  newTimeArr => {
    if (Array.isArray(newTimeArr) && newTimeArr.length === 2) {
      const startTime = newTimeArr[0];
      const endTime = newTimeArr[1];
      const startTime = newTimeArr[0];
      const endTime = newTimeArr[1];
      formData.value.control_start_time = dayjs(startTime).format('YYYY-MM-DD HH:mm:ss');
      formData.value.control_end_time = dayjs(endTime).format('YYYY-MM-DD HH:mm:ss');
    } else {
      formData.value.control_start_time = '';
      formData.value.control_end_time = '';
    }
  },
  { immediate: true }
  { immediate: true }
);
const clearAllData = () => {
  detailData.value = {};
@@ -169,44 +165,45 @@
  EventBus.emit('gettreeDataApi');
};
const submitHandle = () => {
    if(fenceArea.value === 0 ){
  if (!formData.value.folder_id) {
    ElMessage({
              message: '请绘制区域',
              type: 'error',
            });
            return
    }
      if(!formData.value.folder_id){
      message: '请选择文件夹',
      type: 'error',
    });
    return;
  }
  if (!formData.value.name) {
    ElMessage({
              message: '请选择文件夹',
              type: 'error',
            });
             return
    }
     if(!formData.value.name){
      message: '请输入名称',
      type: 'error',
    });
    return;
  }
  if (!formData.value.altitude && layerParams.value.fenceType === 2) {
    ElMessage({
              message: '请输入名称',
              type: 'error',
            });
             return
    }
       if(!formData.value.altitude && layerParams.value.fenceType === 2){
      message: '请输入高度',
      type: 'error',
    });
    return;
  }
    if (fenceArea.value === 0) {
    ElMessage({
              message: '请输入高度',
              type: 'error',
            });
             return
    }
      message: '请绘制区域',
      type: 'error',
    });
    return;
  }
  const params = {
     folder_id: formData.value.folder_id,
    folder_id: formData.value.folder_id,
    name: formData.value.name,
    description: formData.value.description,
    is_enabled: true,
    area: formData.value.area,
    altitude: formData.value.altitude,
    geo_data: layerParams.value.polygonPosition,
     control_start_time:formData.value.control_start_time,
      control_end_time:formData.value.control_end_time,
    control_start_time: formData.value.control_start_time,
    control_end_time: formData.value.control_end_time,
  };
  // 如果是编辑模式,才添加 id
  if (layerParams.value.decideWhetherToAddOrEdit === 2) {
@@ -215,29 +212,19 @@
  if (layerParams.value.decideWhetherToAddOrEdit === 1) {
    //围栏新增
    addFenceApi(params).then(res => {
      if (res.status === 200) {
        ElMessage({
          message: '新增成功',
          type: 'success',
        });
      }
        ElMessage.success('新增成功');
    });
  } else if (layerParams.value.decideWhetherToAddOrEdit === 2) {
    //围栏编辑
    deitFenceApi(params).then(res => {
      if (res.status === 200) {
        ElMessage({
          message: '编辑成功',
          type: 'success',
        });
      }
        ElMessage.success('编辑成功');
    });
  }
  clearAllData();
  emit('callParentMethod');
  EventBus.emit('gettreeDataApi')
  EventBus.emit('gettreeDataApi');
};
onMounted(() => {
  // 获取判断状态(默认设为 1)
@@ -255,27 +242,23 @@
      control_start_time: editData.control_start_time || '',
      control_end_time: editData.control_end_time || '',
      geo_data: editData.geo_data || '',
      create_name:editData.create_name,
     create_time: editData.create_time
        ? dayjs(editData.create_time).format('YYYY年MM月DD日')
        : ''
      create_name: editData.create_name,
      create_time: editData.create_time ? dayjs(editData.create_time).format('YYYY年MM月DD日') : '',
    };
     if (editData.folder_id && options.value.length > 0) {
      const matchedFolder = options.value.find(
        item => item.value === String(editData.folder_id)
      );
    if (editData.folder_id && options.value.length > 0) {
      const matchedFolder = options.value.find(item => item.value === String(editData.folder_id));
      if (matchedFolder) {
        formData.value.folder_id = matchedFolder.value;
      }
    }
 if (editData.control_start_time && editData.control_end_time) {
    if (editData.control_start_time && editData.control_end_time) {
      timeValue.value = [
        dayjs(editData.control_start_time).toDate(),
        dayjs(editData.control_end_time).toDate()
        dayjs(editData.control_end_time).toDate(),
      ];
    }
       fenceArea.value = editData.area|| 0;
  }
    fenceArea.value = editData.area || 0;
  }
});
</script>
@@ -315,10 +298,9 @@
    .label {
      margin-bottom: 5px;
    }
   :deep(.el-date-editor.el-input__wrapper) {
  width: auto !important;
}
    :deep(.el-date-editor.el-input__wrapper) {
      width: auto !important;
    }
  }
  .detailInfo {
    .infpItem {