# monorepo-vue3-antd-admin **Repository Path**: momo2019/monorepo-vue3-antd-admin ## Basic Information - **Project Name**: monorepo-vue3-antd-admin - **Description**: monorepo项目管理模式,vue3+antd+pinia+ts - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-04-30 - **Last Updated**: 2023-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 代码规范 ## EsLint 和 Prettier 校验 ## 命名规范 1. 申明类型 interface 及 type 均为大写开头, 例 `interface MyObject{ param1: number; param2: boolean; }` 2. class 类定义均为大写开头, 例 `class MyClass{}` 3. 组件(包括文件,文件夹,引入对象)均为大写开头,不包括 index.vue, 例 `MyComponent/index.vue` `MyComponent.vue` `import MyComponent from './MyComponent.vue'` 4. 其他均为驼峰 5. views 下的文件夹也为驼峰, components 下的为大写开头 6. 组件在 template 下的为'-'分割单词, 例 `my-component` 7. 组件传参使用'-'分割单词,但方法为驼峰, 例 `:my-data="myData"` `@myFun="myFun"` 8. css 类名使用'-'分割 ## TS 规范 1. 数组类型使用[], 例 `numArr: number[]` 2. 强制类型转换使用 as, 例如 `'1' as number` # 项目目录结构 ## packages/public 下 建议存放多平台共用的内容 1. assets 下,资源文件,如 png,svg,css 等 2. components 下,两个平台共用的组件。PS:不建议把能共用的页面直接放在这里然后直接在 route 里引用,建 议还是先在项目的 views 里引入过渡一下,如 errorPage 页 3. i18n 目前多平台的国际化字段全部放在这里的,但其实实际运用中可能会有些字段不是共用的。所以建议是在 json 文件中区分如 ``` { "project1": { "page1": { "aa": "啊啊" } }, "project2": { "page1": { "bb": "不包" } } } ``` 4. interfaces, 共用的类型声明 5. mock,mock 数据,建议两个平台的所有 mock 都放一块用文件名区分 6. utils,工具库 7. 不建议放在 public 下但可能会共用的内容,api,main.ts,router,store,vite.config.ts ## packages/components 和 packages/utils 下(现在移除了) 1. 其实这两个文件夹没必要存在,只是一开始我用来记录按需加载组件打包和打包 ts 工具库的测试。 ## project1 和 project2 下 1. api 接口 2. assets 资源,包括 png,svg,css 3. components 对应项目下共用的组件(建议是多页面之间共用,但页面放在对应 views/\*/modules 下) 4. interfaces 类型声明文件 5. layout 对外层 layout 组件的引入和改动 6. router 路由 7. store 全局变量及方法 8. views 页面 # 目前封装的几个简单的常用组件 1. 搜索条 2. 列表 3. 权限,自定义命令 4. 富文本 # 新增 Nestjs 的后端 ## 已完成功能 1. 用户系统 2. 权限系统 3. 路由表 (尚未做边界处理) # PS 1. 目前最高只支持二级菜单