Files
saas-mbr/abacus-static-framework/README.md
T

121 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Vue 3 + TypeScript + Vite
> 📚 **团队文档中心**:前后端统一架构、编码标准、接口契约与 agent 协作边界见仓库同级 [`../docs/README.md`](../docs/README.md)`architecture.md` / `coding-standards.md` / `agent-guide.md`)。业务开发请写在 `src/subsystem/**``src/framework/**` 为只读共享框架。
## 环境
### 安装node.js
安装18.20.7版本
### 安装npm
- 新版的nodejs已经集成了npm,输入 "npm -v" 来测试是否成功安装
- 设置npm镜像源为淘宝镜像:npm config set registry https://registry.npmmirror.com
### 安装开发工具及插件
安装Visual Studio Code开发工具
安装Vue Language Features (Volar)插件 为.vue单文件组件提供代码高亮以及语法支持
安装TypeScript Vue Plugin (Volar)插件 ts语法支持
安装JavaScript (ES6) code snippets插件 : es6的快捷语法
#### 设置npm源为淘宝镜像
npm install --registry=https://registry.npmmirror.com
### 安装依赖
npm install
### 启动本地服务
npm run dev
### 打包测试环境
npm run build:stage
### 打包生产环境
npm run build:prod
# 框架文件、开发规范说明
## public
公共文件夹,不会被编译,以下情况适用
1、不会被源码引用(例如 robots.txt
2、必须保持原有文件名(没有经过 hash)
3、或者你压根不想引入该资源,只是想得到其 URL。
## src/assets
公共静态文件夹,目录中文件会被编译
## src/framework
**api** 菜单框架访问后端服务接口
**components** 框架提供公共组件
**hooks** 组合式函数,集成了多个基础组件实现的通用函数
**layout** 菜单框架布局组件
**router** 静态路由
**store** 菜单使用的状态机(菜单配置、用户登录信息等等)
**styles** 公共css
**types** 公共对象(分页参数对象、弹窗属性对象)
**utils** 无状态ts函数、常量配置,例如时间处理工具
**views** 二级菜单内容显示组件
## src/subsystem
1.子系统开发目录
### 子系统第一次开发必做事项
**vite.config.ts**
1、将“**build.outDir**”修改为编译后的输出路径,直接输出到微服务发布包“resources/html/微服务名称”中,与后端服务一起,按原有流程发布版本
2、将“**server.proxy**”修改为微服务访问路径,在VSCode开发环境下,将代替nginx的作用
**public/data/data.js**
1、修改publicData.currentSubsystem数据,用于框架获取子系统菜单模块
2、修改publicData.currentSubsystemName数据,用于框架获取子系统中文名称
3、如存在需要兼容老框架的的前端页面,修改externalOldERPIndex数据,否则改为''
### 子系统后期更新框架注意事项
不需要覆盖的文件夹、文件,以下有改动,会特别说明,并单独修改
1、public
2、vite.config.ts
3、src\subsystem
覆盖完文件后,执行npm install
### 开发规范
**api** 后端服务接口,按照微服务名称划分子文件夹(/api/pms),按照Controller划分ts文件(/api/pms/product.ts)
**router/dynamicRouter.ts** 菜单路由配置
**views** 菜单内容组件,按照一、二级菜单划分文件夹(/views/一级菜单名称/二级菜单名称)
**components** 子系统内部通用组件,如相同功能,在多个菜单内容组件中多次出现,可抽象为通用组件
**hooks** 子系统内业务相关组合式函数,集成了多个基础组件实现的通用函数
**store** 子系统内业务相关使用的状态机(参考框架使用场景)
**styles** 子系统内业务相关公共css
**types** 子系统内业务相关公共对象(参考框架使用场景)
**utils** 子系统内业务相关处理ts函数、业务常量配置
# UI组件使用规范
UI组件优先使用/src/framework/components/standard/中提供的UI组件,里面的组件使用都可以在框架提供的示例模块中找到使用代码。
如不满足或者没有,则表格组件使用vxe-table,除了表格组件,其他均使用elemen-plus提供的组件
如vxe-table、elemen-plus都不满足,则自己通过css、html实现组件化,并且泛用性高,请提交到框架负责人处,发布到公司的UI组件库
# JS/TS工具类推荐
相同功能优先使用/src/framework/utils/standard/中提供的ts,里面的组件使用都可以在框架提供的示例模块中找到使用代码。
已集成的其他ts工具:xe-utils
# 发布前注意事项
1、如果是独立模块或者系统,在/data/doc/升级日志.md中,增加本次升级内容