无人机管理后台前端(已迁走)
chenyao
2025-12-02 a5f41a9dbd0eed8545d842a8c4ced75f17befac1
Merge remote-tracking branch 'origin/feature/v8.0/8.0.4' into feature/v8.0/8.0.4
4 files modified
113 ■■■■■ changed files
src/views/dataCenter/dataCenter.vue 2 ●●● patch | view | raw | blame | history
src/views/job/components/DeviceJobDetails.vue 45 ●●●● patch | view | raw | blame | history
src/views/layerManagement/components/leftList.vue 14 ●●●● patch | view | raw | blame | history
src/views/resource/patchManagement.vue 52 ●●●● patch | view | raw | blame | history
src/views/dataCenter/dataCenter.vue
@@ -304,7 +304,7 @@
      >
        <div class="video-container">
          <video
            style="width: 100%"
            style="width: 100%;height: 500px"
            class="videoBox"
            ref="videoRefs"
            controls
src/views/job/components/DeviceJobDetails.vue
@@ -99,28 +99,7 @@
                fit="cover"
              />
              <el-dialog
                class="ztzf-dialog"
                append-to-body
                modal-class="detailsOfHistoricalTasks"
                v-model="VideoShow"
                :width="pxToRem(1600)"
                :close-on-click-modal="false"
                :destroy-on-close="true"
              >
                <div class="fullscreen">
                  <video
                    ref="fullscreenVideo"
                    class="fullscreen-video"
                    :src="currentVideoUrl"
                    :style="{ width: pxToRem(1567), height: '80vh' }"
                    controls
                    preload="auto"
                    @play="handleVideoPlay"
                    @ended="handleVideoEnded"
                  ></video>
                </div>
              </el-dialog>
            </div>
          </template>
@@ -145,6 +124,28 @@
      </div>
    </div>
  </el-dialog>
    <el-dialog
        class="ztzf-dialog"
        append-to-body
        modal-class="detailsOfHistoricalTasks"
        v-model="VideoShow"
        :width="pxToRem(1600)"
        :close-on-click-modal="false"
        :destroy-on-close="true"
      >
        <div class="fullscreen">
          <video
            ref="fullscreenVideo"
            class="fullscreen-video"
            :src="currentVideoUrl"
            :style="{ width: pxToRem(1567), height: '80vh' }"
            controls
            preload="auto"
            @play="handleVideoPlay"
            @ended="handleVideoEnded"
          ></video>
        </div>
      </el-dialog>
  <!-- 全景360 -->
  <PanoramaPopup
    v-if="'全景'"
src/views/layerManagement/components/leftList.vue
@@ -127,7 +127,17 @@
    loading.value = true;
    const res = await treeDataApi();
    treeAllData.value = res.data.data;
    if(coverData.value.length===0){
       checkedKeys.value = [];
    checkedNodes.value = [];
    coverData.value = [];
     nextTick(() => {
      if (treeRef.value) {
        treeRef.value.setCheckedKeys([]);
      }
    });
    }
    setupWatch();
  } catch (error) {
    console.error('获取数据失败:', error);
@@ -213,7 +223,6 @@
  const currentCheckedKeys = [...checkedKeys.value];
  const currentCheckedNodes = [...checkedNodes.value];
  EventBus.emit('focusOnNode', node.data);
  if (node.data.level === 2) {
    const folderChildren = node.data.children || [];
    const childrenIds = folderChildren.map(child => child.id);
@@ -267,6 +276,7 @@
// 删除按钮事件
const handleDelete = node => {
  let id = node.data.id;
  ElMessageBox.confirm('确定要删除该内容吗?', '提示', {
    confirmButtonText: '确定',
src/views/resource/patchManagement.vue
@@ -510,44 +510,48 @@
  });
};
// 图斑上传
const uploadFlightFile = (file, t) => {
const uploadFlightFile = async (file, t) => {
  loading.value = true;
  const fileSuffix = file.name.substring(file.name.lastIndexOf('.') + 1);
  if (!['kmz', 'kml', 'zip'].includes(fileSuffix)) {
    return ElMessage.error('请上传zip/kmz/kml格式的文件');
  }
  if (file) {
    box.value = false;
  }
  let data = new FormData();
  let type = t === '3' ? '' : t;
  const params = {
    file: file,
    fileName: ruleForm.name,
    LotTypeId: ruleForm.region,
  };
  try {
    const fileSuffix = file.name.substring(file.name.lastIndexOf('.') + 1);
    if (!['kmz', 'kml', 'zip'].includes(fileSuffix)) {
      ElMessage.error('请上传zip/kmz/kml格式的文件');
      return;
    }
    box.value = false;
    let data = new FormData();
    let type = t === '3' ? '' : t;
    const params = {
      file: file,
      fileName: ruleForm.name,
      LotTypeId: ruleForm.region,
    };
  Object.keys(params).forEach(key => {
    data.append(key, params[key]);
  });
    Object.keys(params).forEach(key => {
      data.append(key, params[key]);
    });
  uploadManagementApi(data).then(res => {
    const res = await uploadManagementApi(data);
    if (res.data.code !== 0) {
      return ElMessage.error('上传失败');
      ElMessage.error('上传失败');
      return;
    }
    ElMessage.success('上传成功');
    loading.value = false;
    // 重置表单
    ruleForm.name = '';
    ruleForm.region = '';
    if (ruleFormRef.value) {
      ruleFormRef.value.resetFields();
    }
    searchReset();
  });
  } catch (error) {
     loading.value = false;
  } finally {
    loading.value = false;
  }
};
provide('searchReset', searchReset);
onMounted(() => {