From 812b11bb6848b85d959b7877f72e0c5f3f342727 Mon Sep 17 00:00:00 2001 From: 2910410219 <2910410219@qq.com> Date: Wed, 13 May 2026 16:00:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8D=E5=86=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E6=95=B0=E5=AD=97=E4=BA=BA=E5=88=9B=E4=BD=9C?= =?UTF-8?q?=E5=92=8C=E6=A8=A1=E5=9E=8B=E9=85=8D=E7=BD=AE=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E4=BC=98=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=93=E6=9E=84=EF=BC=8C=E6=8F=90=E5=8D=87=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=8F=AF=E7=BB=B4=E6=8A=A4=E6=80=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/SRC-STRUCTURE.md | 592 ------------------ .../creation/index.ts | 0 .../modelConfig/modelModule/index.ts | 0 .../modelConfig/modelType/index.ts | 0 .../{digitalHuman => settings}/skill/index.ts | 0 src/components/model/ModelSelector.vue | 4 +- src/components/skill/NodeSkillSelector.vue | 2 +- src/components/skill/SkillSelector.vue | 2 +- .../creation/index.vue | 16 +- .../modelModule/component/editModule.vue | 2 +- .../modelConfig/modelModule/index.vue | 4 +- .../modelConfig/modelType/index.vue | 0 .../skill/index.vue | 2 +- 13 files changed, 16 insertions(+), 608 deletions(-) delete mode 100644 docs/SRC-STRUCTURE.md rename src/api/{digitalHuman => settings}/creation/index.ts (100%) rename src/api/{digitalHuman => settings}/modelConfig/modelModule/index.ts (100%) rename src/api/{digitalHuman => settings}/modelConfig/modelType/index.ts (100%) rename src/api/{digitalHuman => settings}/skill/index.ts (100%) rename src/views/{digitalHuman => settings}/creation/index.vue (99%) rename src/views/{digitalHuman => settings}/modelConfig/modelModule/component/editModule.vue (99%) rename src/views/{digitalHuman => settings}/modelConfig/modelModule/index.vue (98%) rename src/views/{digitalHuman => settings}/modelConfig/modelType/index.vue (100%) rename src/views/{digitalHuman => settings}/skill/index.vue (99%) diff --git a/docs/SRC-STRUCTURE.md b/docs/SRC-STRUCTURE.md deleted file mode 100644 index 0758bdc..0000000 --- a/docs/SRC-STRUCTURE.md +++ /dev/null @@ -1,592 +0,0 @@ -# src 目录结构说明 - -> 本文档详细说明了项目 src 目录下所有文件和文件夹的作用 - -## 📁 目录结构总览 - -``` -src/ -├── api/ # API 接口层 -├── assets/ # 静态资源 -├── components/ # 公共组件 -├── directives/ # 自定义指令 -├── i18n/ # 国际化 -├── layout/ # 布局组件 -├── router/ # 路由配置 -├── stores/ # 状态管理(Pinia) -├── theme/ # 样式主题 -├── types/ # TypeScript 类型定义 -├── utils/ # 工具函数 -├── views/ # 页面视图 -├── App.vue # 根组件 -└── main.ts # 应用入口 -``` - ---- - -## 🎯 核心文件 - -### App.vue -- **作用**: Vue 应用根组件 -- **功能**: 定义应用的最外层结构 - -### main.ts -- **作用**: 应用入口文件 -- **功能**: - - 初始化 Vue 实例 - - 注册全局插件(Router、Store、i18n) - - 挂载应用到 DOM - ---- - -## 📡 API 接口层 (`/api`) - -统一管理所有后端接口调用 - -``` -api/ -├── assets/ # 资产管理接口 -├── cid/ # CID 相关接口 -├── common/ # 公共接口(文件上传等) -├── customerService/ # 客服系统接口 -├── digitalHuman/ # 数字人相关接口 -│ ├── audioAssets/ # 音频资产接口 -│ ├── avatar/ # 数字人形象接口 -│ ├── creation/ # 内容创作接口 -│ ├── modelConfig/ # 模型配置接口 -│ ├── skill/ # 技能管理接口 ⭐ -│ └── videoAssets/ # 视频资产接口 -├── knowledge/ # 知识库接口 -│ ├── dataset/ # 数据集接口 -│ ├── document/ # 文档接口 -│ └── model/ # 模型接口 -├── login/ # 登录认证接口 -├── menu/ # 菜单接口 -├── system/ # 系统管理接口 -│ ├── cache/ # 缓存管理 -│ ├── config/ # 系统配置 -│ ├── dept/ # 部门管理 -│ ├── dict/ # 字典管理 -│ ├── menu/ # 菜单管理 -│ ├── monitor/ # 系统监控 -│ ├── personal/ # 个人中心 -│ ├── post/ # 岗位管理 -│ ├── role/ # 角色管理 -│ ├── tenant/ # 租户管理 -│ └── user/ # 用户管理 -└── trade/ # 交易运营接口 - └── operation/ # 运营数据 - ├── analysis/ # 数据分析 - ├── distribution/# 分销数据 - ├── setting/ # 运营设置 - └── stats/ # 统计数据 -``` - -**关键文件**: -- 每个模块的 `index.ts` 包含该模块的所有接口定义 -- 使用 TypeScript 定义接口参数和返回值类型 - ---- - -## 🎨 静态资源 (`/assets`) - -存放项目静态资源文件 - -``` -assets/ -├── 401.png # 401 无权限页面图片 -├── 404.png # 404 页面未找到图片 -├── bg.jpg # 背景图 -├── login-icon-two.svg # 登录页图标 -└── logo-mini.svg # 小尺寸 Logo -``` - ---- - -## 🧩 公共组件 (`/components`) - -可复用的 Vue 组件 - -``` -components/ -├── auth/ # 权限控制组件 -│ ├── auth.vue # 单个权限控制 -│ ├── authAll.vue # 全部权限控制 -│ └── auths.vue # 多权限控制 -├── cropper/ # 图片裁剪组件 -│ └── index.vue -├── editor/ # 富文本编辑器 -│ ├── index.vue -│ └── toolbar.ts # 工具栏配置 -├── iconSelector/ # 图标选择器 -│ └── index.vue -├── model/ # 模型选择器 ⭐ -│ └── ModelSelector.vue -├── myCodeMirror/ # 代码编辑器 -│ └── index.vue -├── noticeBar/ # 通知栏组件 -│ └── index.vue -├── pagination/ # 分页组件 -│ └── index.vue -├── skill/ # 技能选择器 ⭐ -│ ├── NodeSkillSelector.vue # 节点技能选择器 -│ └── SkillSelector.vue # 技能选择器 -└── svgIcon/ # SVG 图标组件 - └── index.vue -``` - -**使用说明**: -- 组件可在任何页面中导入使用 -- 部分组件已注册为全局组件 - ---- - -## 📜 自定义指令 (`/directives`) - -Vue 自定义指令 - -``` -directives/ -└── debounce.ts # 防抖指令 -``` - -**使用示例**: -```vue -点击 -``` - ---- - -## 🌍 国际化 (`/i18n`) - -多语言支持 - -``` -i18n/ -├── lang/ # 语言包 -│ ├── en.ts # 英文 -│ ├── zh-cn.ts # 简体中文 -│ └── zh-tw.ts # 繁体中文 -├── pages/ # 页面级国际化 -│ ├── formI18n/ # 表单国际化 -│ └── login/ # 登录页国际化 -└── index.ts # 国际化配置入口 -``` - -**支持语言**: -- 简体中文 (zh-cn) -- 繁体中文 (zh-tw) -- 英文 (en) - ---- - -## 🏗️ 布局组件 (`/layout`) - -应用整体布局结构 - -``` -layout/ -├── component/ # 布局基础组件 -│ ├── aside.vue # 侧边栏 -│ ├── columnsAside.vue # 分栏侧边栏 -│ ├── header.vue # 头部 -│ └── main.vue # 主体内容区 -├── footer/ # 页脚 -│ └── index.vue -├── lockScreen/ # 锁屏功能 -│ └── index.vue -├── logo/ # Logo 组件 -│ └── index.vue -├── main/ # 主布局模式 -│ ├── classic.vue # 经典布局 -│ ├── columns.vue # 分栏布局 -│ ├── defaults.vue # 默认布局 -│ └── transverse.vue # 横向布局 -├── navBars/ # 导航栏 -│ ├── breadcrumb/ # 面包屑导航 -│ │ ├── breadcrumb.vue # 面包屑 -│ │ ├── closeFull.vue # 全屏切换 -│ │ ├── index.vue # 导航栏入口 -│ │ ├── search.vue # 搜索 -│ │ ├── setings.vue # 设置 -│ │ ├── user.vue # 用户信息 -│ │ └── userNews.vue # 用户消息 -│ └── tagsView/ # 标签页视图 -│ ├── contextmenu.vue # 右键菜单 -│ └── tagsView.vue # 标签页 -├── navMenu/ # 导航菜单 -│ ├── horizontal.vue # 横向菜单 -│ ├── subItem.vue # 子菜单项 -│ └── vertical.vue # 纵向菜单 -├── routerView/ # 路由视图 -│ ├── iframes.vue # iframe 视图 -│ ├── link.vue # 外链视图 -│ └── parent.vue # 父级视图 -└── index.vue # 布局入口 -``` - -**布局模式**: -- 经典布局 (classic) -- 分栏布局 (columns) -- 默认布局 (defaults) -- 横向布局 (transverse) - ---- - -## 🛣️ 路由配置 (`/router`) - -Vue Router 路由管理 - -``` -router/ -├── backEnd.ts # 后端动态路由 -├── frontEnd.ts # 前端静态路由 -├── index.ts # 路由入口 -└── route.ts # 路由工具函数 -``` - -**路由模式**: -- 前端路由: 静态配置,适合固定菜单 -- 后端路由: 动态加载,根据权限生成 - ---- - -## 🗄️ 状态管理 (`/stores`) - -Pinia 状态管理 - -``` -stores/ -├── interface/ # Store 接口定义 -│ └── index.ts -├── bigUpload.ts # 大文件上传状态 -├── index.ts # Store 入口 -├── keepAliveNames.ts # 页面缓存名称 -├── requestOldRoutes.ts # 旧路由请求 -├── routesList.ts # 路由列表状态 -├── tagsViewRoutes.ts # 标签页路由状态 -├── themeConfig.ts # 主题配置状态 -└── userInfo.ts # 用户信息状态 -``` - -**主要 Store**: -- `userInfo`: 用户登录信息、权限 -- `themeConfig`: 主题、布局配置 -- `routesList`: 动态路由列表 -- `tagsViewRoutes`: 标签页历史记录 - ---- - -## 🎨 样式主题 (`/theme`) - -全局样式和主题配置 - -``` -theme/ -├── common/ # 公共样式 -│ └── transition.scss # 过渡动画 -├── media/ # 响应式样式 -│ ├── chart.scss # 图表样式 -│ ├── cityLinkage.scss # 城市联动 -│ ├── date.scss # 日期选择器 -│ ├── dialog.scss # 对话框 -│ ├── error.scss # 错误页 -│ ├── form.scss # 表单 -│ ├── home.scss # 首页 -│ ├── index.scss # 媒体查询入口 -│ ├── layout.scss # 布局 -│ ├── login.scss # 登录页 -│ ├── media.scss # 响应式断点 -│ ├── pagination.scss # 分页 -│ ├── personal.scss # 个人中心 -│ ├── scrollbar.scss # 滚动条 -│ └── tagsView.scss # 标签页 -├── mixins/ # SCSS 混入 -│ ├── button-text.scss # 按钮文本混入 -│ └── index.scss # 混入入口 -├── app.scss # 应用主样式 -├── dark.scss # 暗黑主题 -├── element.scss # Element Plus 样式覆盖 -├── iconSelector.scss # 图标选择器样式 -├── index.scss # 样式入口 -├── loading.scss # 加载动画 -├── other.scss # 其他样式 -└── waves.scss # 波纹效果 -``` - -**主题功能**: -- 支持亮色/暗色主题切换 -- 响应式布局适配 -- Element Plus 组件样式定制 - ---- - -## 📝 类型定义 (`/types`) - -TypeScript 类型声明 - -``` -types/ -└── file-saver.d.ts # file-saver 库类型定义 -``` - -**说明**: 为第三方库提供 TypeScript 类型支持 - ---- - -## 🛠️ 工具函数 (`/utils`) - -通用工具函数库 - -``` -utils/ -├── arrayOperation.ts # 数组操作工具 -├── assetSubscribe.ts # 资产订阅工具 -├── authDirective.ts # 权限指令工具 -├── authFunction.ts # 权限判断函数 -├── build.ts # 构建相关工具 -├── commonFunction.ts # 公共函数 -├── customDirective.ts # 自定义指令注册 -├── debounce.ts # 防抖函数 -├── diffUtils.ts # 差异对比工具 -├── directive.ts # 指令工具 -├── formatTime.ts # 时间格式化 -├── getStyleSheets.ts # 获取样式表 -├── gfast.ts # GFast 框架工具 -├── loading.ts # 加载状态工具 -├── other.ts # 其他工具函数 -├── request.ts # HTTP 请求封装 ⭐ -├── setIconfont.ts # 设置图标字体 -├── storage.ts # 本地存储封装 -├── theme.ts # 主题切换工具 -├── toolsValidate.ts # 表单验证规则 -└── wartermark.ts # 水印工具 -``` - -**核心工具**: -- `request.ts`: Axios 封装,统一处理 HTTP 请求、错误拦截 -- `storage.ts`: localStorage/sessionStorage 封装 -- `authFunction.ts`: 权限判断函数 -- `formatTime.ts`: 日期时间格式化 - ---- - -## 📄 页面视图 (`/views`) - -所有页面组件 - -### 核心业务模块 - -#### 数字人模块 (`/digitalHuman`) ⭐ - -``` -digitalHuman/ -├── audioAssets/ # 音频资产管理 -│ ├── component/ -│ │ └── ttsDialog.vue # TTS 对话框 -│ └── index.vue -├── avatar/ # 数字人形象管理 -│ └── index.vue -├── creation/ # 内容创作 -│ └── index.vue -├── modelConfig/ # 模型配置 -│ ├── modelModule/ # 模型模块管理 -│ │ ├── component/ -│ │ │ └── editModule.vue # 编辑模型 -│ │ └── index.vue -│ └── modelType/ # 模型类型管理 -│ └── index.vue -├── skill/ # 技能管理 ⭐ -│ └── index.vue -└── videoAssets/ # 视频资产管理 - └── index.vue -``` - -**功能说明**: -- **音频资产**: 管理 TTS 音频文件 -- **数字人形象**: 配置数字人外观 -- **内容创作**: 创建数字人内容 -- **模型配置**: 管理 AI 模型(推理、图片、音频) -- **技能管理**: 管理技能模板(zip 格式,包含 .md 文件) -- **视频资产**: 管理视频素材 - -#### 知识库模块 (`/knowledge`) - -``` -knowledge/ -├── component/ -│ └── documentDetailDialog.vue # 文档详情对话框 -├── dataset/ # 数据集管理 -│ ├── component/ -│ │ └── editDataset.vue -│ └── index.vue -├── document/ # 文档管理 -│ ├── component/ -│ │ ├── documentChunks.vue # 文档分块 -│ │ ├── previewDocument.vue # 文档预览 -│ │ └── uploadDocument.vue # 上传文档 -│ ├── detail.vue # 文档详情 -│ └── index.vue -└── index.vue -``` - -#### 客服系统 (`/customerService`) - -``` -customerService/ -├── account/ # 客服账号管理 -├── product/ # 产品管理 -├── report/ # 报表统计 -└── script/ # 话术管理 -``` - -#### 资产管理 (`/assets`) - -``` -assets/ -├── asset/ # 资产管理 -├── category/ # 资产分类 -├── location/ # 库位管理 -├── operation/ # 资产操作 -│ └── count/ # 盘点管理 -├── warehouse/ # 仓库管理 -└── zone/ # 库区管理 -``` - -#### 交易运营 (`/trade`) - -``` -trade/ -└── operation/ - ├── analysis/ # 数据分析 - │ ├── product/ # 产品分析 - │ ├── region/ # 区域分析 - │ └── shop/ # 店铺分析 - ├── distribution/ # 分销管理 - │ ├── effect/ # 分销效果 - │ └── order/ # 分销订单 - ├── order/ # 订单管理 - ├── setting/ # 运营设置 - │ ├── anchor/ # 主播管理 - │ ├── live-account/# 直播账号 - │ └── scheduling/ # 排期管理 - └── stats/ # 统计数据 - ├── anchor/ # 主播统计 - └── shop/ # 店铺统计 -``` - -### 系统管理模块 (`/system`) - -``` -system/ -├── config/ # 系统配置 -├── dept/ # 部门管理 -├── dict/ # 字典管理 -├── menu/ # 菜单管理 -├── monitor/ # 系统监控 -│ ├── loginLog/ # 登录日志 -│ ├── operLog/ # 操作日志 -│ ├── server/ # 服务器监控 -│ └── userOnline/ # 在线用户 -├── personal/ # 个人中心 -├── post/ # 岗位管理 -├── role/ # 角色管理 -├── tenant/ # 租户管理 -└── user/ # 用户管理 -``` - -### 其他模块 - -``` -views/ -├── ads/ # 广告数据分析 -├── chart/ # 图表示例 -├── error/ # 错误页(401, 404) -├── fun/ # 功能演示 -│ ├── clipboard/ # 剪贴板 -│ ├── codemirror/ # 代码编辑器 -│ ├── countup/ # 数字滚动 -│ ├── cropper/ # 图片裁剪 -│ ├── echartsMap/ # 地图 -│ ├── gridLayout/ # 网格布局 -│ ├── printJs/ # 打印 -│ ├── qrcode/ # 二维码 -│ ├── splitpanes/ # 分割面板 -│ └── tagsView/ # 标签页 -├── home/ # 首页 -├── login/ # 登录页 -├── make/ # 组件制作 -├── menu/ # 菜单示例 -├── pages/ # 页面示例 -│ ├── awesome/ # 精选组件 -│ ├── drag/ # 拖拽 -│ ├── dynamicForm/ # 动态表单 -│ ├── element/ # Element 组件 -│ ├── filtering/ # 筛选 -│ ├── formAdapt/ # 表单适配 -│ ├── formI18n/ # 表单国际化 -│ ├── formRules/ # 表单验证 -│ ├── iocnfont/ # 图标字体 -│ ├── lazyImg/ # 图片懒加载 -│ ├── listAdapt/ # 列表适配 -│ ├── preview/ # 预览 -│ ├── steps/ # 步骤条 -│ ├── tableRules/ # 表格验证 -│ ├── tree/ # 树形控件 -│ ├── waterfall/ # 瀑布流 -│ ├── waves/ # 波纹效果 -│ └── workflow/ # 工作流 -├── params/ # 参数传递 -├── personal/ # 个人中心 -├── report-engine/ # 报表引擎 -├── tools/ # 工具页 -└── visualizing/ # 数据可视化 -``` - ---- - -## 🔑 关键文件说明 - -| 文件 | 作用 | 重要性 | -|------|------|--------| -| `main.ts` | 应用入口,初始化 Vue、Router、Store | ⭐⭐⭐ | -| `utils/request.ts` | HTTP 请求封装,统一错误处理 | ⭐⭐⭐ | -| `router/index.ts` | 路由配置,权限控制 | ⭐⭐⭐ | -| `stores/userInfo.ts` | 用户信息状态管理 | ⭐⭐⭐ | -| `stores/themeConfig.ts` | 主题配置状态管理 | ⭐⭐ | -| `components/model/ModelSelector.vue` | 模型选择器组件 | ⭐⭐ | -| `components/skill/SkillSelector.vue` | 技能选择器组件 | ⭐⭐ | -| `views/digitalHuman/` | 数字人核心业务模块 | ⭐⭐⭐ | - ---- - -## 📚 开发规范 - -### 文件命名 -- 组件文件: PascalCase (如 `ModelSelector.vue`) -- 工具文件: camelCase (如 `request.ts`) -- 样式文件: kebab-case (如 `login.scss`) - -### 目录组织 -- 每个业务模块独立目录 -- 组件相关文件放在 `component/` 子目录 -- 接口定义放在对应的 `api/` 目录 - -### 代码风格 -- 使用 TypeScript -- 遵循 ESLint 规则 -- 使用 Prettier 格式化 - ---- - -## 🔄 更新日志 - -- 2024-XX-XX: 创建文档 -- 添加数字人模块说明 -- 添加技能管理功能说明 - ---- - -## 📞 联系方式 - -如有问题,请联系开发团队。 diff --git a/src/api/digitalHuman/creation/index.ts b/src/api/settings/creation/index.ts similarity index 100% rename from src/api/digitalHuman/creation/index.ts rename to src/api/settings/creation/index.ts diff --git a/src/api/digitalHuman/modelConfig/modelModule/index.ts b/src/api/settings/modelConfig/modelModule/index.ts similarity index 100% rename from src/api/digitalHuman/modelConfig/modelModule/index.ts rename to src/api/settings/modelConfig/modelModule/index.ts diff --git a/src/api/digitalHuman/modelConfig/modelType/index.ts b/src/api/settings/modelConfig/modelType/index.ts similarity index 100% rename from src/api/digitalHuman/modelConfig/modelType/index.ts rename to src/api/settings/modelConfig/modelType/index.ts diff --git a/src/api/digitalHuman/skill/index.ts b/src/api/settings/skill/index.ts similarity index 100% rename from src/api/digitalHuman/skill/index.ts rename to src/api/settings/skill/index.ts diff --git a/src/components/model/ModelSelector.vue b/src/components/model/ModelSelector.vue index 997fffe..fca878a 100644 --- a/src/components/model/ModelSelector.vue +++ b/src/components/model/ModelSelector.vue @@ -92,10 +92,10 @@ import { ref, reactive, watch, onMounted } from 'vue'; import { ElMessage, type FormInstance, type FormRules } from 'element-plus'; import { Search, CircleCheck } from '@element-plus/icons-vue'; -import { getModelModuleList, addModelModule, getModelTypeList, normalizeModelTypeOptions } from '/@/api/digitalHuman/modelConfig/modelModule'; +import { getModelModuleList, addModelModule, getModelTypeList, normalizeModelTypeOptions } from '/@/api/settings/modelConfig/modelModule'; import { checkIsSuperAdmin } from '/@/api/system/user/index'; import { getApiErrorMessage } from '/@/utils/request'; -import EditModule from '/@/views/digitalHuman/modelConfig/modelModule/component/editModule.vue'; +import EditModule from '/@/views/settings/modelConfig/modelModule/component/editModule.vue'; interface ModelItem { id: string; diff --git a/src/components/skill/NodeSkillSelector.vue b/src/components/skill/NodeSkillSelector.vue index 826f101..3534cfc 100644 --- a/src/components/skill/NodeSkillSelector.vue +++ b/src/components/skill/NodeSkillSelector.vue @@ -96,7 +96,7 @@