目录结构
so-fast-pl-cloud
so-fast-pl-cloud是SOFAST Cloud产品线的解决方案,提供企业级微服务框架。其标准目录如下:
so-fast-pl-cloud
├── db // 数据库脚本
├── deploy // 服务一键启停脚本
├── nacos // nacos参考配置文件,可直接在nacos导入
│
├── so-fast-biz // 业务模块
│ ├── biz-common-web // 业务共通 如 Filter Aop等可写在此模块中,其他微服务引用此服务
│ ├── biz-modules // 业务模块 可在此模块下创建多个微服务
│ └── biz-sdk // 业务sdk 可在此模块下创建多个微服务sdk
│
├── so-fast-flowable // 工作流服务
├── so-fast-gateway // 网关服务
├── so-fast-pl-common // 产品级通用常数等
├── so-fast-pl-sdk // 产品级微服务sdk
│ ├── so-fast-cms-sdk // cms微服务sdk
│ ├── so-fast-external-api-sdk // 外部接口管理微服务sdk
│ ├── so-fast-flowable-sdk // 工作流微服务sdk
│ ├── so-fast-system-sdk // system微服务sdk
│ ├── so-fast-uaa-sdk // uaa微服务sdk
│ └── so-fast-upms-sdk // upms微服务sdk
│
├── so-fast-platform // 产品线内置服务
│ ├── so-fast-cms // 内容管理服务
│ ├── so-fast-demo // demo示例服务
│ ├── so-fast-external-api // 外部接口管理服务
│ ├── so-fast-fs // 文件上传服务
│ ├── so-fast-log // 审计日志服务
│ ├── so-fast-notice // 通知服务
│ ├── so-fast-system // 系统设置服务
│ ├── so-fast-tenant // 多租户管理服务
│ ├── so-fast-upms // UPMS服务
│ └── so-fast-ws-server // websocket服务
├── so-fast-uaa // 统一认证中心
│
├── so-fast-visual // 可视化服务
│ ├── so-fast-deploy // 可视化部署(可忽略,目前使用jenkins)
│ ├── so-fast-admin // 监控中心
│ ├── so-fast-mpg // 代码生成器
│ ├── so-fast-task // 定时任务管理平台(集成xxl-job)
前端工程
前端工程采用vue-cli3.0构建,其标准目录结构如下:
sofast-web
├── babel.config.js // Babel配置文件
├── package-lock.json
├── package.json
├── nginx // 反向代理的配置
├── postcss.config.js // PostCss配置文件
├── public
│ ├── favicon.ico
│ ├── index.html
│ └── static // 静态文件目录
│ └── NEditor // 富文本编辑器(基于UEditor)
├── src
│ ├── App.vue
│ ├── api // 配置后端接口
│ ├── assets // 图片
│ ├── components // 共通组件目录
│ │ ├── Breadcrumb // 面包屑导航
│ │ ├── BatchImportDialog // 模板文件的下载与文件上传的组件
│ │ ├── BizFileUpload // 文件上传
│ │ ├── BizFileList // 文件列表
│ │ ├── Button // 按钮组件
│ │ ├── Card // 卡片视图组件
│ │ ├── CodeViewer // 剪切板组件
│ │ ├── DateRange // 日期区间组件
│ │ ├── Dialog // 对话框组件
│ │ ├── DictSelect // 字典下拉选组件
│ │ ├── DictCheckbox // 字典复选框组件
│ │ ├── DictRadio // 字典单选框组件
│ │ ├── DrawerView // 抽屉组件
│ │ ├── Editor // 富文本编辑器组件
│ │ ├── EnableSwitch // 开关的启用与禁用组件
│ │ ├── Form // 表单组件
│ │ ├── Hamburger // 展开/收缩左侧菜单按钮组件
│ │ ├── HeaderSearch // 头部菜单检索组件
│ │ ├── IconSelect // 图标选择器组件
│ │ ├── LangSelect // 语言选择组件
│ │ ├── OrganizationSelect // 组织机构级联下拉组件
│ │ ├── Pagination // 分页组件
│ │ ├── PasswordStrength // 密码强度组件
│ │ ├── PositionInput // 职位选择组件
│ │ ├── Process // 流程组件
│ │ ├── RoleSelect // 角色下拉组件
│ │ ├── ResfreshCacheBtn // 刷新后端缓存组件
│ │ ├── SvgIcon // SVG图标
│ │ ├── Table // 表格组件
│ │ ├── TableSearch // 表格数据检索组件
│ │ ├── TextButton // 文本类型按钮组件
│ │ ├── ThirdPartyQrcode // 第三方二维码组件
│ │ ├── Upload // 上传组件
│ │ ├── UserAvatar // 用户头像生成组件
│ ├── filters // 自定义过滤器
│ │ ├── DateFmt.js // 日期格式化(yyyy-MM-dd)
│ │ ├── DateTimeFmt.js // 日期时间格式化(yyyy-MM-dd HH:mm:ss)
│ │ ├── EmptyyVal.js // table中col字段为空时显示内容
│ │ ├── Money.js // 显示金额格式数据
│ │ ├── TenThousands.js // 万元单位显示
│ │ ├── Thousand.js // 将金额转换千分符 10000 => "10,000.00"
│ │ ├── TimeFmt.js // 时间格式化(HH:mm:ss)
│ ├── directives // 自定义指令
│ │ ├── CodeInput.js // 限制输入框输入code的指令
│ │ ├── PermissionBtn.js // 限制按钮是否有权限使用的指令
│ ├── icons
│ │ └── svg // 存放SVG图标
│ ├── i18n // 国际化目录
│ │ ├── common // 共通Label,Message配置
│ │ └── ... // 业务模块Label,Message配置
│ ├── layout // 全局布局
│ │ ├── components
│ │ │ ├── AppMain.vue // 中间内容区
│ │ │ ├── Navbar.vue // 头部Header
│ │ │ ├── Sidebar // 左侧菜单栏
│ │ │ ├── TagsView // 标签页
│ │ │ └── index.js
│ │ ├── index.vue
│ │ └── mixin
│ │ └── ResizeHandler.js // 响应式混入(区分desktop和mobile)
│ ├── mixins // 自定义混入
│ │ ├── dictionary.js // 根据字典的type获取下拉列表或者字典名称的混入
│ │ ├── ExportXlsx.js // 导出文件的混入
│ │ ├── file.js // 获取文件的绝对路径和头像预览路径的混入
│ │ ├── lang.js // 国际化使用的混入
│ ├── router // 路由定义
│ │ ├── MenuComponents.js // 配置侧边栏菜单的访问路径,优化打包
│ │ └── index.js
│ ├── store // Vuex
│ │ ├── modules // vuex模块
│ │ ├── getters.js
│ │ └── index.js
│ ├── styles // 样式文件
│ │ ├── theme-chalk // 主题样式的设计
│ │ ├── mixin.scss // 清除浮动与滚动条样式的设计
│ │ ├── transition-scss // 淡入淡出样式的设计
│ │ ├── variable.scss // 侧边栏和表格头部颜色和表格头部字体颜色样式的设计
│ ├── utils // 工具
│ │ ├── AuthUtils.js // token工具
│ │ ├── Base64Utils.js // base64加密解密
│ │ ├── ColorUtils.js // 颜色计算工具
│ │ ├── DownloadUtils.js // 文件下载工具
│ │ ├── EncryUtils.js // 公钥加密工具
│ │ ├── ExcelUtils.js // 读取Excel文件并获取其中的数据的工具
│ │ ├── PageTitleUtils.js // 获取页面title
│ │ ├── request.js // axios实例
│ │ ├── ScrollUtils.js // 滚动动画
│ │ ├── TreeUtils.js // 树形数据工具(Array2Tree)
│ │ └── ValidateUtils.js // 校验工具
│ └── views
│ │ ├── template // 模板页面模块
│ │ ├── contentMgt // 内容管理模块
│ │ ├── dashboard // 首页
│ │ ├── login // 登录页
│ │ ├── system // 系统管理模块
│ │ │ ├── apiMgt // API管理
│ │ │ ├── dictionaryMgt // 字典管理
│ │ │ ├── log // 日志
│ │ │ ├── menuMgt // 菜单管理
│ │ │ ├── organizationMgt // 组织机构管理
│ │ │ ├── permissionMgt // 权限管理
│ │ │ ├── roleMgt // 角色管理
│ │ │ └── userMgt // 用户管理
│ │ └── userProfile // 个人中心
│ ├── main.js // Vue入口文件
│ ├── settings.js // 头部检索和刷新token是否启用的设置
│ ├── permission.js // 路由跳转的权限控制,并设置对应的页面标题(路由前置导航守卫)
│ ├── echarts.js // 可视化库
└── vue.config.js // vue-cli3配置文件
└── .env.development // 开发环境变量配置
└── .env.staging // 测试环境变量配置
└── .env.production // 生产环境变量配置
└── .prettierrc.js // Vue格式的配置