# money
**Repository Path**: jack-code-space/money
## Basic Information
- **Project Name**: money
- **Description**: 薪酬
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-08-29
- **Last Updated**: 2024-11-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 项目前端
[CREC UI 组件框架](https://pangu.crec.cn/crec-ui)
[前端开发规范](http://10.2.38.200:3010/web/#/6/27)
[前端脚手架使用指引](http://10.2.38.200:3010/web/#/6/28)
[代码分支管理规范](http://10.2.38.200:3010/web/#/6/38)
[本地 git 使用规范](http://10.2.38.200:3010/web/#/6/29)
--
**以上文档如果打不开**: 可以点击使用这个地址:https://developers.crec.cn/wiki/1084581/1084751
以上地址打开要在host文件中配置 `10.2.38.6 developers.crec.cn`, 才可以打开
windows位置:C:\Windows\System32\drivers\etc
mac自行查找
- 前端规范(**重要**):https://developers.crec.cn/wiki/1084581/1086687
- 常见问题:https://developers.crec.cn/wiki/1084581/1086723
- 前端资料:https://developers.crec.cn/wiki/1084581/1116303
- 组件文档:https://developers.crec.cn/wiki/1084581/1086165
- 基础组件
- PC组件框架: `crec-ui` 是基于阿里的 ant-design-vue 进行二次封装,所以可以先熟悉一下 [ant-design-vue](https://www.antdv.com/components/overview-cn)
- 移动端UI框架: `crec-mobile` 是基于有赞的 vant-ui 进行二次封装,所以可以熟悉一下 [vant-ui](https://vant.pro/vant/#/zh-CN)
- 业务组件
- pc端: `crec-business-component`, 具体点击[文档](https://developers.crec.cn/wiki/1084581/1090141)
- h5端:`crec-business-mobile` ,具体点击[文档](https://developers.crec.cn/wiki/1084581/1090147)
## 须知
初始化项目完成后 需要将.env 项目应用参数替换 并修改配置文件中的配置参数
同时在 根目录/public/config下 初始话完整配置表
### 修改配置
// .env 文件
```bash
NODE_ENV=production
BASE_URL=/
# 请求网络的代理路径,nginx中代理路径即为此路径
VUE_APP_API_BASE_URL=/api
# 应用名称,中文
VUE_APP_C_NAME='中铁人资招聘子应用管理端'
# 应用名称,英文,与package.json中name一致
VUE_APP_NAME='crec-hr-recruit-manager'
# 业务服务名称,需要与后端人员确认接口服务名称后修改,/crec-demo为样板工程服务名称
VUE_APP_API_MAIN_URL = '/crec-demo'
VUE_APP_PORT=8081
# 统一认证提供id,如:pgptyb,样板工程clientId
VUE_APP_CLIENT_ID='crechr'
# 研发平台应用id,如:125,样板工程应用id
VUE_APP_APP_ID= '5549'
# 统一认证访问地址
VUE_APP_AUTH_URL = https://10.81.106.123
# 应用路径
VUE_APP_PUBLIC_PATH=
```
// config配置
见上述描述,需要根据需要进行修改替换
### 项目运行
---
- 安装依赖
```bash
yarn install
```
- 开发模式运行
```bash
yarn serve
```
- 编译项目
```bash
yarn build
```
- Lints and fixes files
```bash
yarn lint
```
### 代理配置
本地代理:
```js
proxy: {
[process.env.VUE_APP_API_BASE_URL]: {
target: process.env.VUE_APP_HOST_URL,
ws: false,
changeOrigin: true,
logLevel: 'debug',
pathRewrite: {
[`(^.*${process.env.VUE_APP_API_BASE_URL})`]: ''
}
}
}
```
如上,所有接口都有`process.env.VUE_APP_API_BASE_URL`进行统一代理,线上环境也有此代理路径,在线上部署时,配置文件`./deploy/default.config.template`见下方:
```js
server {
listen 80;
server_name _;
client_max_body_size 50M;
# 配置跨域访问,此处是通配符,严格生产环境的话可以指定为主应用 192.168.2.192:8889
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
gzip_static on;
gzip_proxied expired no-cache no-store private auth;
gzip on;
gzip_min_length 1k;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
# 出现301重定向问题时放开此注释
# absolute_redirect off;
location / {
index index.html index.htm;
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html =404;
}
location /api/ {
# 配置网关地址
proxy_pass http://${GATEWAY_ADDRESS}/;
}
#静态资源文件配置
location ~ .*\.(js|css|ico|jpg|png)$ {
index index.html index.htm;
root /usr/share/nginx/html;
}
}
```
代码中的`${GATEWAY_ADDRESS}`为变量,自动化部署时自动替换相应环境的接口网关地址
### 其他说明
---
- 关闭 Eslint (不推荐) 移除 `package.json` 中 `eslintConfig` 整个节点代码, `vue.config.js` 下的 `lintOnSave` 值改为 `false`
- 组件按需加载 `/src/main.js` L14 相关代码 `import './core/lazy_use'`
- `Dockerfile` 与 `./deploy/default.config.template`为线上部署使用,一般情况下不需修改,如需修改 nginx 配置,请修改`./deploy/default.config.template`文件
## 编码规范
**vscode插件**
```
1)Auto Close Tag
2)Beautify
3)EditorConfig for VS Code
4)ESLint
5)Prettier ESLint
6)Prettier - Code formatter
7)Vetur
8)HTML Snippets
9)Git History
```
1. **路由配置**
- 配置在config.js里面的`router.config.js`中,参照其他配置结构(本项目不采用服务端动态路由,本地要配置业务路由)
- 路由path尽量简短且语义化,同时一定要和views下面的文件或文件夹名称对应上
- views下面尽量按照模块划分,不要直接页面, `xx模块/xx页面/index.vue` 或者 `xx模块/xx子模块/xx页面/index.vue` 不要继续太深
- 子应用的路由path地址由项目负责人配置在主应用菜单数据中
- **路由配置以及文件夹创建尽量由专人负责,保证统一。**
2. **静态资源**
- 图片存放在`assets/images`下
- 图标svg资源放在 `assets/icons`下
- `assets`下现有图片资源不要动
3. **样式资源**
- 全局样式书写在 `styles/global.less`
- `styles/tool.css` 提供了一个基础样式库,可参考,不够可在内部添加,按照对应格式即可
- `App.vue`内不要写样式
- 组件样式书写`style`**必须要加`scoped`,否则会可能影响其他子应用的样式冲突**
- 项目中**仅支持less语法**,不支持sass和stylus。
- 非特殊情况不允许在标签上面写style内联样式
- css书写尽量遵循编写规范,[参见文档](https://developers.crec.cn/wiki/1085945/1086687#head18)
4. **工具开发**
- 工具函数存在在utils目录。
- 模板中使用的工具函数都注册为过滤器,存放在utils/filter.js中,入口已经注册为全局过滤器直接使用
- 自己开发的工具函数写在utils/index.js中
- 常量如果需要则在utils下新建constants.js存储
- 自定义指令需要则在utils下新建directives.js存储
5. **组件开发**
- 管理端基础组件优先考虑`crec-ui`, 业务组件参考`crec-business-component`,必须熟悉;以上不满足,优先考虑自己封装,其次考虑第三方组件。
- 公共组件放在src/comonent下,格式 xxx/index.vue 组件名为文件夹名
- 页面新增、修改应为一个弹框组件且抽离出去。
- 逻辑多且复杂功能尽量拆分为组件出去。
6. **结构搭建**
- html编写层次尽量清晰命令,标签语义化
- 尽量使用基础组件`crec-ui`提供的组件。
- class命名使用顺序:tool.scss(全局工具类) ==> global.less(自定义全局) ==> xx.vue(自定义当前)
- html书写尽量遵循编写规范,[参见文档](https://developers.crec.cn/wiki/1085945/1086687#head10)
7. **api请求**
- 所有的请求必须放在api目录,不允许在页面或组件中出现接口请求地址;
- api目录下面按模块划分api请求函数,且在每个文件顶部书写该模块的作用;每个api函数必须有注释;
- 注意api函数接口地址的url是否要拼接上对应服务的基准地址(特别是别的子应用服务),且注意在vue.config.js中配置跨域代理。
8. **git规范**
- 提交规范/使用规范, [参见文档](https://developers.crec.cn/wiki/1085945/1086707)
9. **权限问题**
- 页面权限:目前项目是子应用,主应用会自动根据主应用返回的路由和子应用路由进行筛选匹配,无需操心,已完成。
- 按钮权限:在组件标签上面加 `v-action:权限符`, 尽量只在按钮上面添加。权限符需要在主应用里面进行数据维护
## 浏览器兼容
Modern browsers and IE11.
| [
](http://godban.github.io/browsers-support-badges/)IE / Edge | [
](http://godban.github.io/browsers-support-badges/)Firefox | [
](http://godban.github.io/browsers-support-badges/)Chrome | [
](http://godban.github.io/browsers-support-badges/)Safari | [
](http://godban.github.io/browsers-support-badges/)Opera |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| IE11, Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions |