You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
8.8 KiB
8.8 KiB
技术栈文档
项目概述
项目名称:内控管理系统(cz-hjjc-ht)
项目版本:4.4.0
基础模板:vue-admin-template
开发端口:9530
核心技术栈
前端框架
- Vue.js:
2.6.10- 渐进式 JavaScript 框架
- 使用 Options API
- 支持 Composition API(通过 @vue/composition-api)
UI 组件库
-
Element UI:
2.13.2- 基于 Vue 2.0 的桌面端组件库
- 主要 UI 组件来源
- 提供完整的组件生态
-
View Design (iView):
4.7.0- 企业级 UI 组件库
- 作为 Element UI 的补充组件
状态管理
-
Vuex:
3.1.0- 集中式状态管理
- 支持模块化 store 结构
- 主要模块:app、permission、settings、user
-
vuex-persistedstate:
^4.1.0- Vuex 状态持久化插件
- 将状态保存到 localStorage
路由管理
- Vue Router:
3.0.6- 官方路由管理器
- 支持动态路由、权限控制
- 路由懒加载优化
HTTP 客户端
- Axios:
0.18.1- 基于 Promise 的 HTTP 库
- 支持请求/响应拦截器
- 统一错误处理和加载状态管理
- Bearer Token 认证
构建工具
- Vue CLI:
4.4.4- 官方脚手架工具
- 基于 Webpack 的构建配置
- 开发服务器、热更新支持
CSS 预处理器
-
Less:
^3.13.1- CSS 预处理器
- less-loader
^5.0.0
-
Sass/SCSS:
1.26.8- CSS 预处理器
- sass-loader
8.0.2
图表与可视化
- ECharts:
^5.0.0- 数据可视化图表库
- 用于仪表盘和报表展示
- 支持多种图表类型
文档处理
-
@vue-office/docx:
^1.6.2- Word 文档预览组件
-
@vue-office/excel:
^1.7.11- Excel 文档预览组件
-
@vue-office/pdf:
^2.0.2- PDF 文档预览组件
-
docx-preview:
^0.3.2- Word 文档预览库
富文本编辑器
- wangeditor:
^4.7.12- 轻量级富文本编辑器
- 支持 Markdown
工具库
-
moment:
^2.29.4- 日期时间处理库
- 通过
Vue.prototype.$moment全局使用
-
js-cookie:
2.2.0- Cookie 操作工具
- 用于 Token 存储
-
path-to-regexp:
2.4.0- 路径匹配工具
- 路由匹配支持
-
nprogress:
0.2.0- 页面加载进度条
- 提升用户体验
-
normalize.css:
7.0.0- CSS 重置样式
- 统一浏览器默认样式
其他功能库
-
vue-grid-layout:
^2.4.0- 网格布局组件
- 支持拖拽和调整大小
- 用于仪表盘布局
-
html2canvas:
^1.4.1- HTML 转 Canvas 工具
- 用于截图功能
-
print-js:
^1.6.0- 打印功能库
- 支持 HTML、PDF、图片打印
-
element-resize-detector:
^1.2.4- 元素尺寸监听工具
- 用于响应式布局
-
@vue/composition-api:
^1.7.2- Composition API 支持(Vue 2)
- 为 Vue 3 迁移做准备
-
vue-demi:
^0.14.6- 兼容 Vue 2/3 的工具库
微前端支持
- Wujie(无界)
- 支持微前端架构
- 可在 iframe 中运行
- 支持生命周期管理(MOUNT/UNMOUNT)
- 支持独立运行模式和嵌入模式
核心依赖
- core-js:
3.6.5- JavaScript 标准库 polyfill
- 提供 ES6+ 特性支持
开发工具
代码规范
- ESLint:
6.7.2- 代码质量检查工具
- 支持 Vue 文件检查(eslint-plugin-vue 6.2.2)
- 使用 babel-eslint
^8.2.2作为解析器
测试框架
- Jest: 通过
@vue/cli-plugin-unit-jest- 单元测试框架
- 使用 @vue/test-utils
1.0.0-beta.29 - babel-jest
23.6.0用于转译
编译工具
- Babel
- @vue/cli-plugin-babel
4.4.4 - babel-plugin-dynamic-import-node
2.3.3 - 开发环境动态导入优化
- @vue/cli-plugin-babel
构建优化
-
SVG 处理
- svg-sprite-loader
4.1.3- SVG 图标精灵图 - svgo
1.2.2- SVG 优化工具
- svg-sprite-loader
-
代码分割
- chunk-libs: 第三方库分离
- chunk-elementUI: Element UI 单独打包
- chunk-commons: 公共组件分离(最小引用 3 次)
- runtime chunk: 运行时代码分离
-
构建优化插件
- script-ext-html-webpack-plugin
2.1.3- 内联运行时脚本
- script-ext-html-webpack-plugin
Mock 数据
- mockjs:
1.0.1-beta3- 生成随机数据
- 拦截 Ajax 请求
- 用于开发环境数据模拟
其他开发工具
- chalk:
2.4.2- 终端颜色输出 - runjs:
4.3.2- 脚本运行工具 - connect:
3.6.6- HTTP 服务器 - serve-static:
1.13.2- 静态文件服务
项目配置
开发服务器
- 端口:9530(默认)
- 自动打开浏览器:是
- 热更新:支持
- 代理配置:支持多个 API 代理
/old-> 旧版系统/oa-> OA 系统- 主 API ->
VUE_APP_BASE_API
环境变量
VUE_APP_MODULE_NAME: 模块名称(用于路由和构建路径)VUE_APP_BASE_API: API 基础路径VUE_APP_OUT_URL: 外部系统 URLVUE_APP_OUT_OLD: 旧版外部系统 URL
路径别名
@: 指向src目录
浏览器兼容性
- 支持所有市场份额 > 1% 的浏览器
- 最后两个版本
- 现代浏览器和 IE 10+
项目结构特点
权限控制
- 基于角色的权限管理(RBAC)
- 路由级别权限控制
- 动态路由生成
- 按钮级别权限控制
多模式支持
- 独立运行模式:直接访问应用
- iframe 嵌入模式:嵌入到其他系统中
- 微前端(Wujie)模式:作为微前端子应用
错误处理
- 全局错误捕获:Vue.config.errorHandler
- iframe 环境错误上报:向父窗口上报错误
- Axios 请求错误统一处理:统一错误提示和处理
自定义组件
- LxHeader: 自定义头部组件
- XyTable: 自定义表格组件
- XyDialog: 自定义对话框组件
- XySelectors: 自定义选择器组件
- PlanPicker: 计划选择器组件
- Breadcrumb: 面包屑导航
- Pagination: 分页组件
主要功能模块
根据项目结构,主要包含以下业务模块:
-
预算管理 (budget)
- 预算编制、审核、执行
- 预算汇总、上报
- 预算目标管理
-
合同管理 (contract)
- 合同列表、详情
- 合同签订
- 合同集成
-
绩效管理 (achievements)
- 评价管理
- 积分管理
- 类型管理
-
部门进度 (departmentProgress)
- 部门工作进度跟踪
-
财务管理 (finance)
- 收支管理
- 资金登记
-
系统管理 (system/sysManage)
- 用户管理
- 角色管理
- 权限管理
- 菜单管理
- 字典管理
- 日志管理
-
仪表盘 (dashboard)
- 数据可视化
- 通知公告
-
其他功能
- 请假管理 (away)
- 借阅管理 (borrow)
- 安装部署 (install)
- 预览功能 (preview)
- 统计报表 (statisticalReport)
运行环境要求
- Node.js: >= 8.9
- npm: >= 3.0.0
常用命令
# 开发环境
npm run dev
# 生产环境构建
npm run build:prod
# 预发布环境构建
npm run build:stage
# 预览构建结果
npm run preview
# 代码检查
npm run lint
# 单元测试
npm run test:unit
# 代码检查和测试
npm run test:ci
# SVG 优化
npm run svgo
技术栈版本总结
| 分类 | 技术 | 版本 |
|---|---|---|
| 前端框架 | Vue | 2.6.10 |
| UI 库 | Element UI | 2.13.2 |
| UI 库 | View Design | 4.7.0 |
| 状态管理 | Vuex | 3.1.0 |
| 路由 | Vue Router | 3.0.6 |
| HTTP | Axios | 0.18.1 |
| 构建工具 | Vue CLI | 4.4.4 |
| CSS 预处理器 | Less | ^3.13.1 |
| CSS 预处理器 | Sass | 1.26.8 |
| 图表库 | ECharts | ^5.0.0 |
| 日期处理 | moment | ^2.29.4 |
| 富文本编辑器 | wangeditor | ^4.7.12 |
| 测试框架 | Jest | - |
| 代码规范 | ESLint | 6.7.2 |
| 微前端 | Wujie | - |
技术栈特点
优势
- 成熟稳定:基于 Vue 2 + Element UI 的成熟方案
- 功能完整:包含完整的后台管理系统功能
- 多模式支持:支持独立运行、iframe、微前端多种部署方式
- 权限完善:完整的权限控制系统
- 文档支持:支持 Office 文档预览
注意事项
- Axios 版本较旧:当前使用 0.18.1,建议升级到最新版本以获得更好的安全性和功能支持
- Vue 2 项目:项目基于 Vue 2.6,如需升级到 Vue 3,需要大量重构工作
- 微前端兼容:项目支持多种运行模式,在修改入口文件时需要确保兼容性
- 生产环境构建:构建产物输出到
../cz_hjjc/public/${VUE_APP_MODULE_NAME},需要配置相应的环境变量 - 依赖更新:部分依赖版本较旧,建议定期更新以获取安全补丁
项目构建输出
- 输出目录:
../cz_hjjc/public/${VUE_APP_MODULE_NAME} - 静态资源目录:
static - 源码映射:生产环境关闭(productionSourceMap: false)
文档生成时间:基于 package.json 和项目结构分析
项目路径:/Users/weizongsong/www/cz-hjjc-ht