From 89f80f2845f74f0a4d12e56c1b031915086af4d5 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Sat, 28 Jun 2025 14:40:43 +0800
Subject: [PATCH] feat:帮助中心接口对接

---
 src/page/index/top/top-qna.vue   |   95 +++++++++++++++++++----
 src/api/helpCenter/helpCenter.js |   20 ++++
 src/views/system/helpCenter.vue  |   93 +++++++++++-----------
 3 files changed, 143 insertions(+), 65 deletions(-)

diff --git a/src/api/helpCenter/helpCenter.js b/src/api/helpCenter/helpCenter.js
index 815eb77..f38c23c 100644
--- a/src/api/helpCenter/helpCenter.js
+++ b/src/api/helpCenter/helpCenter.js
@@ -6,4 +6,22 @@
 		method: 'post',
 		data,params
 	})
-  };
\ No newline at end of file
+  };
+
+// 列表
+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
+	})
+  };
diff --git a/src/page/index/top/top-qna.vue b/src/page/index/top/top-qna.vue
index e903835..84e7446 100644
--- a/src/page/index/top/top-qna.vue
+++ b/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>
diff --git a/src/views/system/helpCenter.vue b/src/views/system/helpCenter.vue
index 4a22519..2075a23 100644
--- a/src/views/system/helpCenter.vue
+++ b/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 {

--
Gitblit v1.9.3