无人机管理后台前端(已迁走)
张含笑
2025-06-28 89f80f2845f74f0a4d12e56c1b031915086af4d5
feat:帮助中心接口对接
3 files modified
208 ■■■■■ changed files
src/api/helpCenter/helpCenter.js 20 ●●●●● patch | view | raw | blame | history
src/page/index/top/top-qna.vue 95 ●●●● patch | view | raw | blame | history
src/views/system/helpCenter.vue 93 ●●●● patch | view | raw | blame | history
src/api/helpCenter/helpCenter.js
@@ -6,4 +6,22 @@
        method: 'post',
        data,params
    })
  };
  };
// 列表
export const listDataAPI = () => {
    return request({
        url: `/blade-system/helpCenter/list`,
        method: 'get',
    })
  };
//更新
export const updataDataAPI = (data,params) => {
    return request({
        url: `/blade-system/helpCenter/update`,
        method: 'put',
        data,params
    })
  };
src/page/index/top/top-qna.vue
@@ -1,29 +1,88 @@
<template>
  <div class="top-qna">
      <el-dropdown @command="dropdownClick" >
            <img alt="" src="@/assets/images/helpCenter/helpIcon.png" />
            <template #dropdown>
                <el-dropdown-menu>
                    <el-dropdown-item command="guide">入门指南</el-dropdown-item>
                    <el-dropdown-item command="systemupdate">系统更新</el-dropdown-item>
                </el-dropdown-menu>
            </template>
        </el-dropdown>
    <el-dropdown @command="dropdownClick">
      <img alt="" src="@/assets/images/helpCenter/helpIcon.png" />
      <template #dropdown>
        <el-dropdown-menu>
          <el-dropdown-item command="guide">入门指南</el-dropdown-item>
          <el-dropdown-item command="systemupdate">系统更新</el-dropdown-item>
        </el-dropdown-menu>
      </template>
    </el-dropdown>
  </div>
</template>
<script setup>
import { useRouter } from 'vue-router'
import { listDataAPI } from '@/api/helpCenter/helpCenter';
import { useRouter } from 'vue-router';
import { ElMessage } from 'element-plus';
const router = useRouter()
const dropdownClick =(val)=>{
if(val ==='guide'){
 ElMessage.warning('加急开发中...');
}else{
router.push('/helpCenter')
const router = useRouter();
const systemupdateFilePath = ref(null);
const rumenPath = ref(null);
const fileData = ref([]); // 存储所有文件数据
const loading = ref(false);
const getlistDataAPI = async () => {
  loading.value = true;
  try {
    const res = await listDataAPI();
    if (res.data.code === 200 && res.data.data) {
      fileData.value = res.data.data;
      // 使用 find 方法查找特定条目
      const systemUpdateItem = res.data.data.find(item => item.id === 4);
      const rumenItem = res.data.data.find(item => item.id === 2);
      if (systemUpdateItem) {
        systemupdateFilePath.value = systemUpdateItem.filePath;
      } else {
        console.warn('未找到系统更新条目');
      }
      if (rumenItem) {
        rumenPath.value = rumenItem.filePath;
      } else {
        console.warn('未找到入门指南条目');
      }
      console.log('数据加载完成', {
        systemupdateFilePath: systemupdateFilePath.value,
        rumenPath: rumenPath.value
      });
    } else {
      ElMessage.error('获取帮助数据失败');
    }
  } catch (error) {
    console.error('获取数据出错:', error);
    ElMessage.error('请求失败');
  } finally {
    loading.value = false;
  }
};
const dropdownClick = val => {
  // 确保数据已加载
  if (loading.value) {
    ElMessage.warning('数据正在加载,请稍后');
    return;
  }
  if (val === 'guide') {
    if (!rumenPath.value) {
      ElMessage.warning('入门指南文件未找到');
      return;
    }
    window.open(rumenPath.value, '_blank');
  } else if (val === 'systemupdate') {
    if (!systemupdateFilePath.value) {
      ElMessage.warning('系统更新文件未找到');
      return;
    }
    window.open(systemupdateFilePath.value, '_blank');
  }
};
}
}
onMounted(() => {
  getlistDataAPI();
});
</script>
<style lang="scss" scoped>
src/views/system/helpCenter.vue
@@ -3,7 +3,7 @@
    <div class="helpContainer">
      <el-table
        class="custom-table"
        :data="tableData"
        :data="helpData"
        style="width: 100%"
        :row-class-name="tableRowClassName"
      >
@@ -12,17 +12,17 @@
            {{ $index + 1 }}
          </template>
        </el-table-column>
        <el-table-column prop="jibie1" label="一级类别" />
        <el-table-column prop="jibie2" label="二级类别" />
        <el-table-column prop="name" label="上传者" />
        <el-table-column prop="date" label="上传时间" />
        <el-table-column prop="levelOneType" label="一级类别" />
        <el-table-column prop="levelTwoType" label="二级类别" />
        <el-table-column prop="uploadUser" label="上传者" />
        <el-table-column prop="createTime" label="上传时间" />
        <el-table-column label="操作" width="150" align="center">
          <template #default="scope">
            <span class="look">查看</span>
            <span class="look" @click="clickDetail(scope.row)">查看</span>
            <el-upload
              style="display: inline-block"
              :show-file-list="false"
              :before-upload="onUploadFileBefore"
               :before-upload="(file) => onUploadFileBefore(file, scope.row)"
              :limit="1"
            >
              <span class="uploads">上传</span>
@@ -35,35 +35,11 @@
</template>
<script setup>
import { uploadFileAPI } from '@/api/helpCenter/helpCenter';
import { uploadFileAPI, listDataAPI, updataDataAPI } from '@/api/helpCenter/helpCenter';
import { ElMessage } from 'element-plus';
const helpData = ref([{}]);
const tableData = [
  {
    jibie1: '入门指南',
    jibie2: '指挥调度平台',
    name: 'cdsfsdf',
    date: '2025/05/03 14:10',
  },
  {
    jibie1: '入门指南',
    jibie2: '综合管理平台',
    name: 'cdsfsdf',
    date: '2025/05/03 14:10',
  },
  {
    jibie1: '入门指南',
    jibie2: 'AISKY算法平台',
    name: 'cdsfsdf',
    date: '2025/05/03 14:10',
  },
  {
    jibie1: '一级类别',
    jibie2: '7.6.35版本更新',
    name: 'cdsfsdf',
    date: '2025/05/03 14:10',
  },
];
import { onMounted } from 'vue';
const helpData = ref([]);
// 表格隔行变色
const tableRowClassName = ({ row, rowIndex }) => {
  if (rowIndex % 2 === 1) {
@@ -72,18 +48,43 @@
    return 'success-row';
  }
};
const onUploadFileBefore = file => {
const fileFormat = file.name.split('.')[1]
    if (fileFormat !== 'pdf') return ElMessage.error('请上传pdf格式的文件')
  const formData = new FormData();
  formData.append('file',file, file.name);
  uploadFileAPI(formData)
    .then(res => {
    if (res.data.code !== 200) return ElMessage.error('上传失败')
                    ElMessage.success('上传成功')
    })
const getlistDataAPI = () => {
  listDataAPI().then(res => {
    helpData.value = res.data.data;
  });
};
// 查看
const clickDetail = (val) => {
  const filePath = val.filePath
   if (!val.filePath) {
    ElMessage.warning('没有可预览的文件');
    return;
  }
  window.open(filePath, '_blank');
};
// 文件上传
const onUploadFileBefore = (file,row) => {
const params={
  id:row.id,
  filePath:row.filePath
}
  const fileFormat = file.name?.split('.')[1];
  if (fileFormat !== 'pdf') return ElMessage.error('请上传pdf格式的文件');
  const formData = new FormData();
  formData.append('file', file, file.name);
  uploadFileAPI(formData).then(res => {
    if (res.data.code === 200) {
      ElMessage.success('上传成功');
      updataDataAPI(params)
    } else {
      ElMessage.error('上传失败');
    }
  });
};
onMounted(() => {
  getlistDataAPI();
});
</script>
<style lang="scss">
.helpContainer {