# school-help-ui
**Repository Path**: jcuser/school-help-ui
## Basic Information
- **Project Name**: school-help-ui
- **Description**: 帮帮帮前端
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-01-05
- **Last Updated**: 2021-07-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 关于依赖
## npm
+ art-template
+ chalk
+ cz-conventional-changelog
+ execa
+ inquirer
+ commitizen
## 编译
**IDE:** **HBuilder X**
**HBuilder X插件:**
+ less编译
+ scss编译
+ uni-app编译
## css库
+ [uviewui](https://www.uviewui.com/)
# 关于目录结构
|—— api (api相关文件目录)
| |—— index.js (api接口和请求配置)
| |—— requestAxios.js (封装的请求方法)
|—— assets (静态文件目录,存放业务相关的)
| |—— languages (语言相关)
| | |—— Chinese.json (中文字典)
| | |—— English.json (英语字典)
| | |—— index.js (对字典的载入与配置)
| | |—— vue-i18n.js (国际化工具)
| |—— style (样式相关)
| | |—— global.scss (全局的工具样式)
| |—— themes (主题相关)
|—— cliShell (封装的命令行工具)
| |—— comTem (组件模板)
| |—— pageTem (页面模板)
| |—— createComponents.js (模板创建工具主题)
|—— components (自定义组件存放的目录)
| |—— ...
|—— node_modules (npm依赖项存放的目录)
| |—— ...
|—— pages (各个页面存放的目录)
| |—— ...
|—— static (开放的全局静态目录,与assets 相似,存放显示相关的)
| |—— icon (图标、svg、字体等)
| | |—— ...
| |—— images (图片)
| | |—— ...
| |—— style (样式)
| | |—— ...
| |—— test (测试用的所有静态文件存放目录)
| | |—— ...
|—— tools (封装的工具函数存放目录)
| |—— prototypeTools (被加载到原型链上的工具函数)
| | |—— DateTools.js
| | |—— ArrayTools.js
| | |—— ObjectTools.js
| |—— mapApi.js (地图的工具函数)
|—— uview-ui (uview-ui库)
| |—— ...
|—— .gitignore (git提交忽略文件的规则)
|—— App.vue (全局根组件)
|—— main.js (入口)
|—— manifest.json (针对多端的不同配置)
|—— package.json (npm包管理文件)
|—— pages.json (页面配置文件)
|—— uni.scss (全局css文件)
# 关于开发流程
## 组件开发流程
使用 `npm run cct` 命令创建公共组件
**组件前缀选择**
> components 目录中的 c- 前缀的组件可以在使用时免去引入操作,禁止创建 u- 前缀的组件,因为 u- 组件再不引用的情况下会被定位到 uview-ui/components目录下。
>
> 如果原先的 u- 组件无法满足你的要求,你可以将其复制到 components 目录,更名为 c- 组件,然后进行源码修改。或者创建一个新的 c- 组件
**维护README.md**
每一个自定义组件都应该维护一个`README.md`文件
`README.md` 文件中一个至少包含以下几项内容,其他可自行增加
+ 标题(组件全名)
+ 对改组件的基本介绍文字(用来干嘛)
+ 一个使用/测试案例
+ 需要传递的参数
+ 提供的事件回调
+ 使用的注意事项
+ 已知bug
**对可出现错误的 props 做处理**
对可能出现的默认值做默认值处理或者在使用时做判断处理
**在test页面中维护一个测试用例**
每一个公共组件一个在test页面中维护一个测试案例
## 页面开发流程
使用 `npm run cct` 命令创建页面
在 `pages.json` 文件中添加当前页面的配置, 在 `test`页面添加向当前页面转跳的按钮
具体的页面配置请参考 `c-page` 组件的文档
# 关于国际化
**字典查询 this.$t(key)**
在任何使用静态文字的地方都应该进行字典查询操作
以下是几个例子
```js
{{ $t('test.goLogin') }}
//组件js中
console.log(this.$t('test.goLogin'))
```
每一个组件的静态文字应该在各个语言的字典 `components` 中创建对应的组件字典
例如 `c-page` 组件中使用了 “返回” 文字
那么我一个在每一个字典中 `components` 字段中添加一个 `CPage` 字段,然后再其中加入` "break":"返回" `
# 关于主题颜色
建议每一个组件或者页面中不要使用太多种颜色,尽量在 [uviewui color](https://www.uviewui.com/components/color.html) 中选择颜色使用( scss变量 )
这样有利于减少后期加入主题切换功能时的工作量
# 关于代码提交
参考 [宇宙互联代码提交规范](https://thoughts.aliyun.com/workspaces/5f04896991b713001dbbf8ef/docs/5f460f570d263e0001284f1d)
拉取最新代码 `git push`命令或者直接点webstorm的拉取按钮
使用 `npm run addAll` 命令将所有文件添加至git变更中
使用 `npm run commit` 命令提交当前变更
选择 提交类型
输入 当前提交影响的主模块(页面/组件)
输入 本次提交的简介(描述主要更新了什么 <90字)
输入 本次提交的详情(可以不写)
后面全部按 Enter 默认即可
使用 `git push` 命令将提交推送到远程仓库