山东大学软件学院创新项目实训开发日志——第十七周(二)
目录
1.优化前端日历页面显示,增加鼠标悬停显示当日会议基本信息的效果。
2.优化会议计划生成与会议PPT生成功能,使得能够加载多页docx文件与PDF文件
3.优化了会议PPT生成功能,使得可以上传多个文件并根据多个文件生成会议PPT
4.修改了识别docx文件只能识别正文,不能识别表格内容的bug
5.优化了知识图谱管理,添加了修改知识库名称的功能
6.优化了知识图谱的prompt,使得可以更加科学地划分节点关系
7.优化了知识图谱前端展示,添加了加载图标
项目开发进入收尾阶段
本次我主要做的工作有:
1.优化前端日历页面显示,增加鼠标悬停显示当日会议基本信息的效果。
通过设置鼠标悬停状态来实现:
若存在会议,则在前端显示会议的信息
2.优化会议计划生成与会议PPT生成功能,使得能够加载多页docx文件与PDF文件
利用PdfReader提取内容,然后设置for循环提取每页的数据。
3.优化了会议PPT生成功能,使得可以上传多个文件并根据多个文件生成会议PPT
由前端向后端发送文件列表files,然后利用for循环将每个files依次处理并拼接。
4.修改了识别docx文件只能识别正文,不能识别表格内容的bug
编写代码对text中的表格(table)进行识别,然后将每个单元格cell进行去重操作。
5.优化了知识图谱管理,添加了修改知识库名称的功能
-
界面设计:
-
在侧边栏的知识库列表中,每个知识库项右侧添加了一个"修改"按钮
-
该按钮仅在当前选中的知识库上显示(通过
lib.id === currentLibraryId
条件控制)
-
-
交互流程:
-
点击"修改"按钮触发
editLibraryName(lib)
方法 -
该方法使用 Element Plus 的
ElMessageBox.prompt
弹出一个输入框 -
输入框预填充了当前知识库名称
-
用户输入新名称后,调用
updateLibraryName
方法
-
-
后端通信:
-
使用 Axios 发送 PUT 请求到
/api/libraries/{id}
-
请求体包含新的知识库名称
-
更新成功后重新获取知识库列表并保持当前选择状态
-
显示成功/失败提示消息
-
6.优化了知识图谱的prompt,使得可以更加科学地划分节点关系
限定节点的属性值和属性范围,并提供例子来为大模型提取实体和关系作参考。
7.优化了知识图谱前端展示,添加了加载图标
-
设计思路:
-
创建了一个由8个圆形元素组成的加载动画
-
每个圆形元素有独立的动画延迟
-
添加了渐变背景和文字说明增强视觉效果
-
-
技术实现:
-
使用纯CSS创建动画效果
-
通过
v-if="loading"
控制显示时机 -
圆形元素使用绝对定位形成环形布局
-
关键帧动画实现缩放和透明度变化
-
-
动画代码:
.loading-animation {position: relative;width: 50px;height: 50px; }.circle {position: absolute;width: 10px;height: 10px;background-color: #409EFF;border-radius: 50%;animation: loading-animation 1.2s infinite ease-in-out; }@keyframes loading-animation {0%, 100% {transform: scale(1);opacity: 1;background-color: #409EFF;}50% {transform: scale(1.5);opacity: 0.5;background-color: #66b1ff;} }