文件目录规范
# 文件目录
```
├── public
│ ├──js 静态 js 文件
│ │ ├── axios.min.js
│ │ └── ...
│ └──faceconfig.js 入口配置文件
├── src 源码目录
│ ├── api 入口js文件
│ │ ├── BaseApi.js 全局api
│ │ └── LoginApi.js 其他api
│ ├── components 公共组件目录
│ │ └── SvgIcon.vue
│ ├── assets 资源目录
│ │ ├── img 静态图片
│ │ │ └── logo.png
│ │ ├── iconfonts iconfont上的图标
│ │ └── icons svg图片icon
│ │ └── svg
│ ├── js 公共组件目录
│ │ ├── AESUtils.js aes加密,用于登录页
│ │ ├── gmCrypt.js sm4 加密
│ │ ├── axios.js 请求封装
│ │ ├── Https.js 请求封装
│ │ ├── CommonDictionary.js 公共本地字典表
│ │ ├── ValidateRule.js 公共校验规则
│ │ └── Utils.js 公用方法类
│ ├── mixins 混入
│ │ ├── BaseMixins.js 全局混入
│ │ └── PageMixins.js 部分功能模块混入
│ ├── router 前端路由
│ │ ├── index.js
│ │ └── Accept.js 功能模块路由
│ ├── store 应用级数据(state)
│ │ ├── index.js
│ │ └── modules
│ │ ├── Base.js 基础全局状态
│ │ └── Accept.js 功能模块状态
│ ├── theme
│ │ └── Default 主题文件
│ │ ├── Root.less ant-design 主题属性 && 自定义属性
│ │ ├── Base.less 通用class 样式
│ │ └── Style.less 自定义class
│ └── views 页面目录
│ └── Index
│ ├── Index.vue
│ ├── part
│ ├── js
│ └── components
```
## 接口:api
```
├── api 入口js文件
│ ├── BaseApi.js 全局api
│ └── LoginApi.js 其他api
```
1. `BaseApi.js` 为全局api,存放字典,区划等公用api请求
2. 其他api,均需要以模块划分,一个模块使用一个api
3. 命名规范:==模块名Api.js,首字母大写==,eg:LoginApi.js, SystemApi.js
## 组件:components
```
├── components 公共组件目录
│ └── SvgIcon.vue
```
1. 主要存放全局可通用组件
2. 命名规范:==模块名.vue,首字母大写==
3. 在template文件中引用时,使用`<svg-icon />`小写形式,
## 资源:assets
```
├── assets 资源目录
│ ├── img 静态图片
│ │ └── logo.png
│ ├── iconfonts iconfont上的图标
│ └── icons svg图片icon
│ └── svg
```
1. `img` 存放静态图片资源
2. `svg` 存放svg图片
## 混入:mixins
```
├── mixins 混入
│ ├── BaseMixins.js 全局混入
│ └── PageMixins.js 部分功能模块混入
```
1. `BaseMixins`全局混入,例如字典CollectionData等
2. 其他功能模块混入,不需要全局混入,例如分页模块,拍照模块,上传模块等,均以功能模块划分
3. 命名规范:==模块名Mixins.js,首字母大写==,eg: PageMixins.js, UploadMixins.js
## 路由:router
```
├── router 前端路由
│ ├── index.js
│ └── Accept.js 功能模块路由
```
1. 每个模块一个路由
2. 命名规范:==模块.js,首字母大写==,eg: Accept.js, System.js
## 状态:store
```
├── store 应用级数据(state)
│ ├── index.js
│ └── modules
│ ├── Base.js 基础全局状态
│ └── Accept.js 功能模块状态
```
1. `Base.js`基础全局状态,存放登录信息,菜单信息等数据
2. 其他功能模块,均需以模块划分,一个模块使用一个js
3. 命名规范:==模块名.js,首字母大写==,eg: Accept.js, Sysrem.js
## 主题:theme
```
├── theme
│ └── Default 主题文件
│ ├── Root.less ant-design 主题属性 && 自定义属性
│ ├── Base.less 通用class 样式
│ └── Style.less 自定义class
```
1. `theme`下的文件夹名,即主题名,与`faceconfig`中的`theme`字段相对应
2. 每个主题文件下必须包含`Root`,`Base`,`Style`文件,这些文件已引入,不需要手动再引入
3. `root` 主要包含属性设置
4. `Base` 一些基础class设置,覆盖ant-design样式
5. `Style` 自定义class设置
6. 如新加样式文件,需要手动引入
## 页面:view
```
└── views 页面目录
└── Index
├── Index.vue
├── part
├── js
└── components
```
1. 一个模块一个文件夹,包含主文件vue,以及相关内部组件
2. 命名规范:==模块名.vue,首字母大写==
3. 组件在template文件中引用时,使用`<svg-icon />`小写形式
4. components 存放单独组件,如弹框等
5. part 存放内部页面,如新增页面
6. js 存放单文件js
# 其他规范
> template中绑定事件,@click,@search等,需要页面操作去触发的,统一加on前缀
```js
// template
<a-button @click="onSubmit" />
// js
methods: {
onSubmit(){
this.getFinalParams()
},
getFinalParams (){}
}
```