# template-web-admin-vue3
**Repository Path**: justsosu/template-web-admin-vue3
## Basic Information
- **Project Name**: template-web-admin-vue3
- **Description**: 后台管理系统模板项目 内置表单配置化、表格配置化、路由与菜单去冗余配置化、权限配置、布局配置等
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-04-17
- **Last Updated**: 2026-01-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ${chineseName}
${description}
## 安装
```bash
pnpm install
```
## 构建
### 开发启动
```bash
pnpm run dev
```
### 测试环境打包
```bash
pnpm run build:test
```
### 正式环境打包
```bash
pnpm run build
```
## 项目运行时关键配置
见[@/config](./src/config/index.ts),不依赖src其他模块,避免循环依赖, 修改@全员
## 图片
在[@/assets/images](./src/assets/styles)
## 样式
在[@/assets/styles](./src/assets/styles)
## 与编译后html文件同级
在[./public](./public)
## 组件
命名以PascalCase(大驼峰)
https://cn.vuejs.org/guide/essentials/component-basics.html
## 页面
### 页面创建
在[@/pages](./src/pages/)下创建,一个模块对应一个文件夹,文件夹下面自己再规划
### 页面路由配置
见[路由](#router)
## 路由
### 路由配置
在[@/router/modules](./src/router/modules)下创建一个[模块名].ts,(模块名同[@/pages/]下同名页面模块名,),
在[@/router/modules/index.ts](./src/router/modules/index.ts)统一导出
### 导航守卫设置
#### 全局导航首位设置
见[@/router/guard](./src/router/guard/index.ts),每个拦截的行为各自创建文件夹,在[@/router/guard](./src/router/guard/index.ts)中应用
## 仓库
### user仓库
见[@/store/user/ts](./src/store/user.ts),涉及用户登录、登出等用户相关主流程方法
### app仓库
见[@/store/app.ts](./src/store/app.ts),涉及应用布局及设备相关[暂未完善]
### global-modal仓库
见[@/store/global-modal](./src/store/global-modal.ts),全局弹窗仓库,支持的全局弹窗枚举需要拓展,且需要在AppGlobalModal里面注册对应的枚举
## api
### 创建
一个模块一个文件,文件内部参考[@/api/common.ts](./src/api/common.ts);
### 导出
见[具名导出与tree shaking](#modules)
### 请求前配置
在[@/api/request](./src/api/request.ts)中beforeRequest,详见签名
### 新业务场景全局处理
在[@/api/request](./src/api/request.ts)beforeError isBusinessError条件,详见签名
新业务场景请增加业务错误枚举 见[@/config](./src/config/index.ts)
## hooks
### 创建及导出
见[具名导出与tree shaking](#modules)
## utils
### utils/enums
见[@/utils/enums](./src/utils/enums.ts)
所有字典请用枚举,避免魔鬼数字
### 创建及导出
见[具名导出与tree shaking](#modules)
## 具名导出与tree shaking
整个模块可以通过index.ts统一导出,推荐具名导出,如果多个模块导出,尽量避免出现默认导出,方便tree shaking
## plugins
见[@/utils/plugins](./src/plugins/index.ts)
### 创建及导出
见[具名导出与tree shaking](#modules)
### 单个模块变量导出
```ts
// module.ts
export const foo = () => {
console.log("foo");
};
export const baz = () => {
console.log("baz");
};
```
```ts
// index.ts
export * from "./module.ts";
```
### 模块引用
使用时模块路径直接写到@/utils,【不同于uni,uni小程序打包不支持tree shaking,原因:只是保持原路径编译未bundle】
```ts
import { foo, baz } from "@/xxxxxxxxx";
```
## eslint
问题如果必须屏蔽时,建议单行屏蔽,次之全文件屏蔽,如果需要全局屏蔽@全员