项目结构

src 目录结构说明

📁 根目录文件

  • main.ts - 应用入口文件,初始化 Vue 应用
  • App.vue - 根组件

📂 主要目录

api/

API 接口管理目录,包含所有后端接口调用

  • baseRequest.ts - 基础请求配置
  • types.ts - API 类型定义
  • evaluation/ - 评估相关接口
    • appraise.ts - 评价接口
    • reviewer.ts - 评审人接口
    • role.ts - 角色接口
    • score.ts - 评分接口
    • weightGroup.ts - 权重组接口
  • exam/ - 考试相关接口
    • ranking.ts - 排名接口
  • mannage/ - 管理相关接口
    • analysis.ts - 分析接口
  • project/ - 项目相关接口
    • ai.ts - AI 相关
    • answerWhiteList.ts - 答案白名单
    • data.ts - 数据接口
    • dataHelper.ts - 数据助手
    • dimension.ts - 维度接口
    • exam.ts - 考试接口
    • extSetting.ts - 扩展设置
    • form.ts - 表单接口
    • lottery.ts - 抽奖接口
    • poster.ts - 海报接口
    • printTemplate.ts - 打印模板
    • publish.ts - 发布接口
    • report.ts - 报表接口
    • setting.ts - 设置接口
    • template.ts - 模板接口
    • theme.ts - 主题接口
    • todo.ts - 待办接口
    • wxmp.ts - 微信小程序接口
  • question/ - 题库相关接口
    • bank.ts - 题库接口
    • bankItem.ts - 题库项接口
  • report/ - 报表相关接口
    • dashboard.ts - 仪表盘接口
    • form.ts - 表单报表接口
  • system/ - 系统管理接口
    • announcement.ts - 公告接口
    • config.ts - 配置接口
    • dept.ts - 部门接口
    • dict/ - 字典管理
    • menu.ts - 菜单接口
    • message.ts - 消息接口
    • msgtemplate.ts - 消息模板
    • operlog.ts - 操作日志
    • organization.ts - 组织接口
    • post.ts - 岗位接口
    • rbacFunctionality.ts - RBAC 权限
    • role.ts - 角色接口
    • sensitiveword.ts - 敏感词
    • user.ts - 用户接口
    • userauth.ts - 用户认证
  • tool/ - 工具相关接口
    • file.ts - 文件接口
    • gen.ts - 代码生成
    • job.ts - 定时任务
    • jobLog.ts - 任务日志
    • openClient.ts - 开放客户端
    • webhook.ts - Webhook 接口
  • uniapp/ - UniApp 相关接口
    • index.ts - UniApp 主接口
    • portal.ts - 门户接口
  • workflow/ - 工作流相关接口
    • categories.ts - 分类接口
    • definition.ts - 定义接口
    • finished.ts - 已完成接口
    • flowExtension.ts - 流程扩展
    • process.ts - 流程接口
    • todo.ts - 待办接口
    • workflow.ts - 工作流主接口

assets/

静态资源目录,存放图片、图标等静态文件

  • icons/ - SVG 图标文件
    • 包含钉钉、飞书、微信等第三方平台图标
  • images/ - 图片资源
    • 错误页面图片(401、404)
    • 考试相关图标
    • 表单相关图标
    • 主题相关图片

components/

全局公共组件目录,存放可复用的 Vue 组件

  • index.ts - 组件导出文件
  • AreaCascader/ - 地区级联选择器
  • Crontab/ - Cron 表达式编辑器
  • DictTag/ - 字典标签组件
  • DragList/ - 拖拽列表组件
  • FileUpload/ - 文件上传组件
  • HandleProcess/ - 流程处理组件
  • IconSelector/ - 图标选择器
  • ImageUpload/ - 图片上传组件
  • LangSwitch/ - 语言切换组件
  • NoticeBar/ - 通知栏组件
  • PaginatedSelect/ - 分页选择器
  • Pagination/ - 分页组件
  • PhoneVerification/ - 手机验证组件
  • RightToolbar/ - 右侧工具栏
  • SimpleCron/ - 简单 Cron 编辑器
  • SvgIcon/ - SVG 图标组件
  • TAvatar/ - 头像组件
  • TDot/ - 圆点组件
  • TLoading/ - 加载组件
  • ValueSelector/ - 值选择器
  • Verifition/ - 验证码组件
  • Vue3Marquee/ - 跑马灯组件

directive/

自定义指令目录,存放 Vue 自定义指令

  • index.ts - 指令导出文件
  • authDirective.ts - 权限指令
  • copyTextDirective.ts - 复制文本指令
  • customDirective.ts - 自定义指令
  • rippleDirective.ts - 水波纹指令

i18n/

国际化配置目录,支持多语言

  • index.ts - 国际化入口
  • helper.ts - 国际化辅助函数
  • lang/ - 语言包目录
    • zh-cn/ - 简体中文
    • zh-tw/ - 繁体中文
    • en/ - 英文
    • ja/ - 日语
    • ko/ - 韩语
    • de/ - 德语
    • fr/ - 法语
    • 每个语言包包含:
      • client.json - 客户端文案
      • common.json - 公共文案
      • components.json - 组件文案
      • form.json - 表单文案
      • formgen.json - 表单生成器文案
      • formI18n.json - 表单国际化
      • layout.json - 布局文案
      • login.json - 登录文案
      • menu.json - 菜单文案
      • project.json - 项目文案
      • register.json - 注册文案
      • rform.json - 表单相关
      • system.json - 系统文案
      • tool.json - 工具文案
      • uniapp.json - UniApp 文案
      • workflow.json - 工作流文案

layout/

布局组件目录,应用整体布局结构

  • index.vue - 布局主组件
  • component/ - 布局子组件
    • aside.vue - 侧边栏
    • columnsAside.vue - 分栏侧边栏
    • header.vue - 头部
    • main.vue - 主内容区
  • footer/ - 页脚组件
  • lockScreen/ - 锁屏组件
  • logo/ - Logo 组件
  • main/ - 主要布局模式
    • classic.vue - 经典布局
    • columns.vue - 分栏布局
    • defaults.vue - 默认布局
    • transverse.vue - 横向布局
  • navBars/ - 导航栏
    • tagsView/ - 标签视图
    • topBar/ - 顶部栏
  • navMenu/ - 导航菜单
    • horizontal.vue - 横向菜单
    • subItem.vue - 子菜单项
    • vertical.vue - 纵向菜单
  • routerView/ - 路由视图
    • iframes.vue - iframe 视图
    • link.vue - 链接视图
    • parent.vue - 父级视图
  • upgrade/ - 升级提示

locales/

本地化配置目录

  • en-US/ - 英文本地化
  • zh-CN/ - 中文本地化

router/

路由配置目录,管理应用路由

  • index.ts - 路由入口
  • backEnd.ts - 后端路由配置
  • route.ts - 路由定义
  • modules/ - 路由模块
    • client.ts - 客户端路由
    • form.ts - 表单路由
    • project.ts - 项目路由
    • report.ts - 报表路由

stores/

状态管理目录,使用 Pinia 管理全局状态

  • index.ts - Store 入口
  • dashboard.ts - 仪表盘状态
  • formInfo.ts - 表单信息状态
  • formPoster.ts - 表单海报状态
  • formWorkflow.ts - 表单工作流状态
  • keepAliveNames.ts - 缓存组件名状态
  • requestOldRoutes.ts - 旧路由请求状态
  • routesList.ts - 路由列表状态
  • tagsViewRoutes.ts - 标签视图路由状态
  • themeConfig.ts - 主题配置状态
  • userInfo.ts - 用户信息状态

theme/

主题样式目录,全局样式和主题配置

  • index.scss - 主样式入口
  • app.scss - 应用样式
  • dark.scss - 暗色主题
  • element.scss - Element Plus 样式
  • elementTheme.scss - Element 主题
  • iconSelector.scss - 图标选择器样式
  • layoutMenus.scss - 布局菜单样式
  • loading.scss - 加载样式
  • other.scss - 其他样式
  • tableTool.scss - 表格工具样式
  • tduck.scss - TDuck 特定样式
  • common/ - 公共样式
    • transition.scss - 过渡动画
  • media/ - 响应式样式
    • date.scss - 日期样式
    • dialog.scss - 对话框样式
    • error.scss - 错误页面样式
    • home.scss - 首页样式
    • layout.scss - 布局样式
    • media.scss - 媒体查询
    • pagination.scss - 分页样式
    • scrollbar.scss - 滚动条样式
    • tagsView.scss - 标签视图样式
  • mixins/ - 样式混入
    • index.scss - 混入入口

types/

TypeScript 类型定义目录

  • axios.d.ts - Axios 类型定义
  • global.d.ts - 全局类型定义
  • layout.d.ts - 布局类型定义
  • mitt.d.ts - 事件总线类型定义
  • pinia.d.ts - Pinia 类型定义

utils/

工具函数目录,存放公共工具方法

  • index.ts - 工具函数导出
  • arrayOperation.ts - 数组操作
  • asyncComponent.ts - 异步组件加载
  • auth.ts - 认证工具
  • authFunction.ts - 权限函数
  • build.ts - 构建工具
  • business.ts - 业务工具
  • commonFunction.ts - 公共函数
  • constants.ts - 常量定义
  • formatTime.ts - 时间格式化
  • getStyleSheets.ts - 样式表获取
  • jsencrypt.ts - 加密工具
  • loading.ts - 加载工具
  • localeUtil.ts - 本地化工具
  • messageUtil.ts - 消息工具
  • mitt.ts - 事件总线
  • other.ts - 其他工具
  • request.ts - 请求封装
  • scrollTo.ts - 滚动工具
  • setIconfont.ts - 图标字体设置
  • storage.ts - 存储工具
  • systemConfig.ts - 系统配置
  • tduck.ts - TDuck 工具
  • theme.ts - 主题工具
  • toolsValidate.ts - 验证工具
  • uploadFile.ts - 文件上传工具
  • watermark.ts - 水印工具
  • webscoket.ts - WebSocket 工具
  • zipdownload.ts - 压缩下载
  • echarts/ - ECharts 相关
    • themes/ - ECharts 主题

views/

页面视图目录,存放所有页面组件

  • ai/ - AI 相关页面
    • form/ - AI 表单生成
  • client/ - 客户端页面
    • home/ - 客户端首页
    • layout/ - 客户端布局
    • message/ - 消息页面
    • welcome/ - 欢迎页面
  • components/ - 页面级组件
    • FormItemListSelect/ - 表单项列表选择
    • FormItemValueSelector/ - 表单项值选择器
    • FormOptionSelect/ - 表单选项选择
    • RbacFunctionality/ - RBAC 权限组件
    • TChart/ - 图表组件
  • error/ - 错误页面
    • 401.vue - 未授权页面
    • 404.vue - 未找到页面
  • form/ - 表单相关页面
    • auth/ - 权限管理
    • data/ - 数据管理
    • dimension/ - 维度设置
    • editor/ - 表单编辑器
    • evaluation/ - 评估管理
    • exam/ - 考试功能
    • logic/ - 逻辑设置
    • poster/ - 海报编辑
    • preview/ - 预览页面
    • publish/ - 发布设置
    • setting/ - 表单设置
    • statistics/ - 统计分析
    • theme/ - 主题设置
    • workflow/ - 工作流设置
    • write/ - 表单填写
  • formgen/ - 表单生成器核心
    • api/ - 表单生成器 API
    • assets/ - 表单生成器资源
    • components/ - 表单生成器组件
    • utils/ - 表单生成器工具
  • home/ - 主页
  • manage/ - 管理页面
    • home/ - 管理首页
    • workspace/ - 工作空间
  • message/ - 消息中心
    • log/ - 消息日志
    • my/ - 我的消息
    • template/ - 消息模板
  • project/ - 项目管理
    • confirmation/ - 确认页面
    • FormDeleted/ - 已删除表单
    • mangeform/ - 表单管理
    • my/ - 我的项目
    • MyTemplate/ - 我的模板
    • question/ - 题库管理
    • recycle/ - 回收站
    • sensitiveword/ - 敏感词管理
    • share/ - 分享管理
    • template/ - 模板管理
    • TemplateManage/ - 模板管理页
    • theme/ - 主题管理
    • todo/ - 待办管理
  • report/ - 报表相关
    • common/ - 公共报表
    • components/ - 报表组件
    • dashboard/ - 报表仪表盘
    • types/ - 报表类型
  • system/ - 系统管理
    • announcement/ - 公告管理
    • config/ - 系统配置
    • dept/ - 部门管理
    • dict/ - 字典管理
    • menu/ - 菜单管理
    • operlog/ - 操作日志
    • ops/ - 运维管理
    • post/ - 岗位管理
    • role/ - 角色管理
    • user/ - 用户管理
  • test/ - 测试页面
  • tool/ - 工具页面
    • gen/ - 代码生成
    • job/ - 定时任务
    • openclient/ - 开放客户端
  • uniapp/ - UniApp 相关
    • banner/ - Banner 管理
    • config/ - UniApp 配置
    • portal/ - 门户管理
  • user/ - 用户相关
    • login/ - 登录页面
    • register/ - 注册页面
  • workflow/ - 工作流
    • categories/ - 分类管理
    • definition/ - 定义管理
    • list/ - 工作流列表
    • start/ - 启动工作流
    • task/ - 任务管理

📝 总结

这是一个基于 Vue 3 + TypeScript + Element Plus 构建的表单系统前端项目,主要功能包括:

  • 🎨 表单设计器:可视化表单设计和编辑
  • 📊 数据分析:表单数据统计和分析
  • 🔐 权限管理:完整的 RBAC 权限体系
  • 🌐 国际化:支持多语言切换
  • 📱 多端支持:支持 Web 和 UniApp
  • 🎯 工作流:表单工作流审批
  • 🧪 考试评估:支持在线考试和评估

目录结构清晰,职责分明,便于团队协作开发和维护。