|
|
|
|
# gwms-app
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
```
|
|
|
|
|
├── README.md
|
|
|
|
|
├── babel.config.js
|
|
|
|
|
├── package-lock.json
|
|
|
|
|
├── package.json
|
|
|
|
|
├── postcss.config.js
|
|
|
|
|
├── public // 静态资源
|
|
|
|
|
│ └── index.html
|
|
|
|
|
├── src
|
|
|
|
|
│ ├── App.vue // 入口文件
|
|
|
|
|
│ ├── components // 通用组件
|
|
|
|
|
│ ├── i18n // 国际化
|
|
|
|
|
│ ├── main.ts // 入口文件
|
|
|
|
|
│ ├── manifest.json // uniapp配置文件
|
|
|
|
|
│ ├── pages // 页面文件
|
|
|
|
|
│ ├── pages.json // 页面配置
|
|
|
|
|
│ ├── plugins // 插件
|
|
|
|
|
│ ├── sfc.d.ts
|
|
|
|
|
│ ├── static // 静态资源
|
|
|
|
|
│ ├── store // Vuex
|
|
|
|
|
│ ├── types // 类型订单
|
|
|
|
|
│ ├── uni.scss // uniapp 全局样式
|
|
|
|
|
│ └── utils // 工具方法
|
|
|
|
|
├── tsconfig.json // TypeScript配置文件
|
|
|
|
|
└── yarn.lock
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 页面结构(TODO)
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
├── demo // 示例页面
|
|
|
|
|
│ ├── index.vue // 页面文件
|
|
|
|
|
│ ├── config.ts // 页面相关配置
|
|
|
|
|
│ ├── mixin.ts // 页面相关Mixin
|
|
|
|
|
│ └── model.ts // 页面Module
|
|
|
|
|
├── system // 系统相关页面
|
|
|
|
|
├── index // 首页
|
|
|
|
|
└── login // 登录页面
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 代码规范
|
|
|
|
|
|
|
|
|
|
### 注释规范:
|
|
|
|
|
|
|
|
|
|
- 方法、属性、类型等注释使用
|
|
|
|
|
```
|
|
|
|
|
/**
|
|
|
|
|
* 注释内容
|
|
|
|
|
*/
|
|
|
|
|
```
|
|
|
|
|
- 行内注释可以使用 `//`
|
|
|
|
|
|
|
|
|
|
#### 简单示例
|
|
|
|
|
```
|
|
|
|
|
/**
|
|
|
|
|
* 当前计数
|
|
|
|
|
* @private
|
|
|
|
|
*/
|
|
|
|
|
private count = 1;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 增加当前计数
|
|
|
|
|
* @param delta
|
|
|
|
|
*/
|
|
|
|
|
@Mutation
|
|
|
|
|
increment(delta: number): void {
|
|
|
|
|
// 当前计数++
|
|
|
|
|
this.count += delta;
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 命名规范:
|
|
|
|
|
|
|
|
|
|
- 文件名统一小写,多个单词使用`-`连接
|
|
|
|
|
- 类型命名使用PascalCase
|
|
|
|
|
- 方法及属性名和变量命名camelCase
|
|
|
|
|
- 不要使用_作为私有变量前缀,使用private
|
|
|
|
|
|
|
|
|
|
### 样式规范
|
|
|
|
|
|
|
|
|
|
- template中`class`名称统一小写,多个单词使用`-`连接
|
|
|
|
|
- 尽量避免直接书写行内样式 `style` , 使用 `class` 定义样式
|
|
|
|
|
- 组件内优先使用`scoped`样式
|
|
|
|
|
|
|
|
|
|
### 页面结构:
|
|
|
|
|
|
|
|
|
|
尽量保持一个页面一个文件夹,命名规则:
|
|
|
|
|
|
|
|
|
|
- 页面名称:`index.vue`
|
|
|
|
|
- 页面Vuex模块:`model.ts`
|
|
|
|
|
- 页面相关配置: `config.ts`
|
|
|
|
|
- 页面相关Mixin: `mixin.ts`
|
|
|
|
|
|
|
|
|
|
### Vuex:
|
|
|
|
|
|
|
|
|
|
- 用户登录状态等会话信息统一放在session模块
|
|
|
|
|
- ~~【删】因为已经做了自动引入,不建议使用动态引入,按照规范命名文件即可~~
|
|
|
|
|
- ~~【删】不要直接引用model文件,使用相关注解引入@State、@Action~~
|
|
|
|
|
|
|
|
|
|
### i18n:
|
|
|
|
|
|
|
|
|
|
- 获取当前语言` this.$i18n.locale `
|
|
|
|
|
- 设置当前语言` this.$i18n.locale = 'en'`
|
|
|
|
|
|
|
|
|
|
## 使用框架库
|
|
|
|
|
|
|
|
|
|
- [uni-app](https://uniapp.dcloud.io/) - 跨平台开发框架
|
|
|
|
|
- [uview-ui](https://uviewui.com/) - uni-app UI组件库
|
|
|
|
|
- [dayjs](https://github.com/iamkun/dayjs/) - 日期处理
|
|
|
|
|
- [luch-request](https://github.com/lei-mu/luch-request) - uni-app 请求库
|
|
|
|
|
- [vue-i18n](https://github.com/kazupon/vue-i18n) - vue 国际化库
|
|
|
|
|
- [vue-wait](https://github.com/f/vue-wait) - vue 加载状态库
|
|
|
|
|
- [vue-class-component](https://github.com/vuejs/vue-class-component/) - Class方式写Vue组件
|
|
|
|
|
- [vue-property-decorator](https://github.com/vuejs/vue-class-component/) - Vue组件装饰器
|
|
|
|
|
- [vuex](https://vuex.vuejs.org/zh/) - vue 状态管理
|
|
|
|
|
- [vuex-persistedstate](https://github.com/robinvdvleuten/vuex-persistedstate/) - vue 数据持久化
|
|
|
|
|
- [vuex-module-decorators](https://github.com/championswimmer/vuex-module-decorators/) - Vuex创建模块相关装饰器
|
|
|
|
|
- [vuex-class](https://github.com/ktsn/vuex-class/) - Vuex绑定相关装饰器
|
|
|
|
|
|
|
|
|
|
#### 关于Class方式定义Vue(x)组件及相关装饰器(@Decorator)的使用方法
|
|
|
|
|
|
|
|
|
|
参考以上
|
|
|
|
|
[vue-class-component](https://github.com/vuejs/vue-class-component/) 、
|
|
|
|
|
[vue-property-decorator](https://github.com/vuejs/vue-class-component/) 、
|
|
|
|
|
[vuex-module-decorators](https://github.com/championswimmer/vuex-module-decorators/) 、
|
|
|
|
|
[vuex-class](https://github.com/ktsn/vuex-class/)
|
|
|
|
|
相关库
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Project setup
|
|
|
|
|
```
|
|
|
|
|
yarn install
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Compiles and hot-reloads for development
|
|
|
|
|
```
|
|
|
|
|
yarn serve
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Compiles and minifies for production
|
|
|
|
|
```
|
|
|
|
|
yarn build
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Customize configuration
|
|
|
|
|
See [Configuration Reference](https://cli.vuejs.org/config/).
|