# 智能文档归类后台 **Repository Path**: zmd1992/agent-document-categorization-ui ## Basic Information - **Project Name**: 智能文档归类后台 - **Description**: 智能文档归类后台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-10 - **Last Updated**: 2026-10-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能文档归类前端 基于 **Vue 3 + TypeScript** 的中后台管理系统前端,配套后端项目 `agent-document-categorization-api` 使用。除标准的用户/角色/菜单/监控等管理功能外,内置「**智能文档归类**」三个页面,对接后端 `single-category` 模块的本地大模型归类能力。 ## 其他地址 - 后端地址 : https://gitee.com/zmd1992/agent-document-categorization-api - 本地客户端地址:https://gitee.com/zmd1992/local-client ## 技术栈 | 类别 | 技术 | |---|---| | 框架 | Vue 3.5、TypeScript 5.9、Vite 8 | | UI 组件 | Element Plus 2.13、Tailwind CSS 4 | | 状态管理 | Pinia 3(含持久化插件) | | 路由 | Vue Router 4(Hash 模式 + 后端动态菜单) | | 请求 | Axios(拦截器统一携带 Token / 错误处理) | | 图表 | ECharts 6、vue-echarts | | 其他 | vue-quill 富文本、spark-md5 分片上传、vite-plugin-svg-icons | ## 功能模块 - **认证与动态路由**:登录后从后端 `/api/menu/tree` 加载菜单,动态注册路由(`src/router/dynamic.ts` 自动扫描 `views/**/*.vue`),支持刷新页面路由恢复; - **系统管理**:用户 / 角色 / 菜单 / 字典 / 通知 / 文件 / 操作日志 / 在线用户等页面; - **监控**:服务器状态(CPU/内存/磁盘,ECharts 图表)、Redis 监控、接口监控; - **工具**:代码生成配置页; - **智能文档归类**(核心业务): - `scanTask` 扫描任务:创建任务、配置源目录/目标目录、异步启动扫描、Ollama 连接状态检测; - `fileRecord` 归类记录:按任务/状态/分类筛选,查看 Agent 归类结果与内容预览,人工确认 / 驳回 / 重新归类; - `categoryRule` 分类规则:自定义分类、扩展名与关键词(注入 Agent 提示词)。 ## 界面预览 > 以下截图来自本地运行环境(http://localhost:3000),图片存放于 `img/` 目录。 ### 扫描任务 创建任务、配置扫描源目录与目标根目录、异步启动扫描,页面顶部实时显示 Ollama 连接状态。 ### 归类记录 查看 Agent 归类结果(分类 / 置信度 / 理由),置信度不足的文件可人工「确认 / 驳回」,也可「重新归类」。 ### 分类规则 自定义分类、扩展名与关键词,规则会注入 Agent 提示词辅助判断,Agent 仍结合文件内容综合决策。 ## 目录结构 ``` src ├── api/ # 接口封装(user / menu / task / file / category 等) │ ├── category.ts # 智能归类:scanTaskApi / fileRecordApi / categoryRuleApi │ └── config.ts # 接口配置 ├── components/ # 通用组件(HeaderBar / SideMenu / TagsView / SvgIcon / ChuckUpload 分片上传等) ├── directives/ # 自定义指令(v-permission 按钮权限) ├── router/ │ ├── index.ts # 路由实例 + 登录守卫 │ └── dynamic.ts # 后端菜单 → 动态路由构建 ├── stores/ │ ├── userStore.ts # 用户信息 / Token │ └── menuStore.ts # 菜单树 / 主题配置 ├── types/ # TS 类型定义 ├── utils/ │ ├── request.ts # Axios 封装(baseURL /api,自动携带 Bearer Token) │ ├── download.ts # 文件下载 │ └── date.ts # 日期工具 └── views/ ├── Login.vue / Index.vue / Home.vue # 登录与主布局 ├── system/ # 系统管理页面 ├── monitor/ # 监控页面 ├── tool/ # 工具页面 └── category/ # ★ 智能文档归类(scanTask / fileRecord / categoryRule) ``` ## 环境要求 - Node.js **20+**(推荐 22 LTS,Vite 8 要求 Node ≥ 20.19) - npm 10+ - 后端服务已启动(依赖 MySQL / Redis,智能归类还需本地 Ollama) ## 快速开始 ### 1. 准备后端(详见后端 README.md) ```bash # 初始化数据库(后端 api 目录下) # 执行 sql.sql 与 sql/category.sql,安装 Ollama 并拉取模型 ollama pull qwen3:8b # 启动后端 cd ../agent-document-categorization-api mvn spring-boot:run -pl single-admin # 或 IDE 运行 com.single.App,端口 8081 ``` ### 2. 安装依赖并启动 ```bash cd agent-document-categorization-ui npm install npm run dev ``` 启动后浏览器自动打开 **http://localhost:3000**,使用后端初始化脚本中的账号登录。 ## 代理与联调 `vite.config.ts` 已配置开发代理: ``` /api → http://localhost:8081 (去掉 /api 前缀,因后端 context-path 为 /api) ``` 前端请求统一走 `/api` 前缀(`utils/request.ts` 的 baseURL),开发时无需处理跨域;生产部署时由 Nginx 将 `/api` 反向代理到后端。 ## 构建 ```bash npm run build # vue-tsc 类型检查 + vite 打包,产物输出到 dist/ ``` > 说明:脚手架部分既有页面(如 `system/notice`、`system/task`、`system/user`、`monitor/redis` 等)存在遗留的类型不严谨写法,`vue-tsc` 严格模式下可能报错,属**脚手架原有问题**、与本次新增的 `category` 页面无关;日常开发使用 `npm run dev` 不受影响,如需发布请先修复对应页面的类型声明。 ## 常见问题 | 问题 | 处理 | |---|---| | 登录后菜单不显示「智能归类」 | 确认已执行后端 `sql/category.sql`(含菜单及超级管理员绑定),重新登录刷新 | | 接口返回 401 跳转登录 | Token 过期或未携带,重新登录即可 | | 页面报 403 | 当前角色无该菜单/按钮权限,到「角色管理」分配 | | 归类记录全为「失败」 | 多为后端 Ollama 未启动或模型名配置不一致,检查后端日志 | | 分片上传失败 | 确认后端 `chunk` 存储目录与 MinIO 配置正确 | ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## License 请在遵守相关开源协议的前提下使用。