瀏覽代碼

完成知识库查看列表,新增,详情页

愿你天天开心 1 年之前
父節點
當前提交
6bb97c203a

+ 4 - 2
src/api/kenowledge/index.ts

@@ -13,7 +13,9 @@ export const fetchReports = (params: QueryParams): AxiosPromise<FetchReportsResp
       pageSize: params.pageSize,  // 分页参数中的每页大小
       eventType: params.eventType,  // 事件类型(可选)
       publishDate: params.publishDate,  // 发布日期范围(可选)
-      subject: params.subject  // 关键字(可选)
+      subject: params.subject,  // 关键字(可选)
+      sortBy: params.sortBy, // 排序字段
+      sortOrder: params.sortOrder  // 排序方式
     }
   });
 };
@@ -30,7 +32,7 @@ export const addReport = (data: UnwrapNestedRefs<AddReportParams>): AxiosPromise
 // 获取报告详情
 export const fetchReportDetail = (reportId: string): AxiosPromise<ReportItem> => {
   return request({
-    url: `/api/knowledge/detail/${reportId}`,
+    url: `/api/knowledge/detail?reportID=${reportId}`,
     method: 'get',
   });
 };

+ 26 - 20
src/views/knowledge/knowledge-management/detail.vue

@@ -38,6 +38,7 @@
 import { ref, onMounted } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
 import { ElMessageBox, ElMessage } from 'element-plus';
+import { fetchReportDetail } from '@/api/kenowledge/index';
 
 const report = ref({
   reportId: '',
@@ -55,12 +56,14 @@ const report = ref({
 const route = useRoute();
 const router = useRouter();
 
+// 返回上一级
 const goBack = () => {
   router.go(-1);
 };
 
+
+
 const handleEdit = () => {
-  // 编辑逻辑
   ElMessageBox.prompt('编辑报告', '提示', {
     confirmButtonText: '确定',
     cancelButtonText: '取消',
@@ -80,7 +83,6 @@ const handleEdit = () => {
 };
 
 const handleDelete = () => {
-  // 删除逻辑
   ElMessageBox.confirm('此操作将永久删除该报告, 是否继续?', '提示', {
     confirmButtonText: '确定',
     cancelButtonText: '取消',
@@ -100,25 +102,29 @@ const handleDelete = () => {
 };
 
 onMounted(() => {
-  const reportId = route.params.reportId;
-
-  // 模拟数据对象
-  const mockData = {
-    reportId: 'YJYA0000000001',
-    title: '广东省城市轨道交通运营突发事件总结报告',
-    keyword: '轨道交通',
-    eventType: '自然灾害',
-    publishDate: '2024-07-11 16:09:09',
-    sourceUnit: '茂名市应急管理局',
-    notificationType: '总结报告',
-    summary: '广东省城市轨道交通运营突发事件总结报告。',
-    attachmentName: '关于X市公交XXX公交车司机出现状况的调查报告.pdf',
-    attachmentUrl: '/path/to/attachment.pdf'
-  };
-
-  // 直接赋值给 report
-  report.value = mockData;
+  const reportId = route.query.reportID;
+  fetchReportDetail(reportId)
+    .then(response => {
+      const data = response.data[0]; // 假设 data 是一个数组,取第一个元素
+      report.value = {
+        reportId: data.report_id, // 将 report_id 映射到 reportId
+        title: data.reportName, // 将 reportName 映射到 title
+        keyword: '',
+        eventType: data.eventType, // 保持不变
+        publishDate: data.publishDate, // 保持不变
+        sourceUnit: data.publishingUnit,
+        notificationType: data.notificationType,
+        summary: data.summary,
+        attachmentName: data.file.length > 0 ? data.file[0].name : '',
+        attachmentUrl: data.file.length > 0 ? data.file[0].url : ''
+      };
+    })
+    .catch(error => {
+      ElMessage.error('获取报告详情失败');
+      console.error(error);
+    });
 });
+
 </script>
 
 <style scoped>

+ 12 - 4
src/views/knowledge/knowledge-management/index.vue

@@ -139,6 +139,7 @@ import { fetchReports, addReport, updateReport, deleteReport } from '@/api/kenow
 import {AddReportParams, QueryParams, ReportItem} from '@/api/kenowledge/types';
 import ChunkUpload from '@/components/ChunkUpload/index.vue';
 import {getDicts} from "@/api/system/dict/data";
+import router from "@/router";
 
 const demoFormRef = ref(null);
 const demoList = ref<ReportItem[]>([]);
@@ -159,7 +160,9 @@ const queryParams = reactive<QueryParams>({
   pageSize: 10,
   eventType: '',
   publishDate: ['', ''],
-  subject: ''
+  subject: '',
+  sortBy: 'publishDate',
+  sortOrder: 'desc',
 });
  // 表单数据
 const form = reactive<AddReportParams>({
@@ -218,7 +221,6 @@ const getList = async () => {
 };
 
 
-
 const handleQuery = () => {
   queryParams.pageNum = 1;
   getList();
@@ -231,6 +233,8 @@ const resetQuery = () => {
   queryParams.eventType = '';
   queryParams.publishDate = ['', ''];
   queryParams.subject = '';
+  queryParams.sortBy = 'publishDate'; // 重置排序字段
+  queryParams.sortOrder = 'desc'; // 重置排序方式
   getList();
 };
 
@@ -269,11 +273,15 @@ const handleDelete = async (row: ReportItem) => {
   }
 };
 
-
+// 详情页
 const handleView = (row: ReportItem) => {
-  window.location.href = `/report/details/${row.reportId}`;
+  router.push({
+    path: `/knowledge/detail`,
+    query: { reportID: row.reportId }
+  });
 };
 
+
 // 格式化日期
 const formatDate = (date: Date): string => {
   const yyyy = date.getFullYear();