Browse Source

first commit

yangxiao 3 years ago
commit
ebdad4f906
1 changed files with 215 additions and 0 deletions
  1. 215 0
      README.md

+ 215 - 0
README.md

@@ -0,0 +1,215 @@
+# 公共内容API
+### API
+###### get(url, params = {})
+get请求。
+>url: 接口地址  
+params: 请求参数  
+
+使用方式:
+```
+this.API.get("powercompare/windfarmAjax").then((res) => {
+  ....
+});
+```
+
+###### post(url, params = {})
+post请求。
+>url: 接口地址  
+params: 请求参数  
+
+使用方式:
+```
+this.API.post("login", {
+  "username": "ylf",
+  "password": "123456",
+}).then((res) => {
+  ....
+});
+```
+### Get_PDF
+公共的pdf导出工具  
+```  
+this.Get_PDF.downloadPDF(document.querySelector(id), 导出的pdf名称)
+```  
+### BASE
+###### numberB0(n)
+为各位数字自动补充一个0,用于日期补零。
+>参数:  
+n: 传入数字。  
+输出:  
+01  
+
+使用方式:
+```
+this.BASE.numberB0(1)
+```
+###### getBzDate(time, tag = 0, type = "date")
+通过传入的时间戳获取所需的一个标准格式的日期
+>参数:  
+time: 时间戳  
+tag: 0,今天;1,明天,-1,昨天  
+type: 输出格式,date:标准日期1999-01-10;datetime:标准日期时间:1999-01-10 10:10:10。  
+返回:1999-01-10
+
+使用方式:
+```
+this.BASE.getBzDate(new Date().getTime(), 0, "date") // 返回:1999-01-10
+this.BASE.getBzDate(new Date().getTime(), 0, "datetime") // 返回:1999-01-10 10:10:10
+```
+###### dateQjChange(list, tag)
+为时间区间的数组补零。
+>参数:  
+list:[开始日期, 结束日期],如[2020-10-01, 2020-10-01]  
+tag:1,补时分秒[2020-10-01 00:00:00, 2020-10-01 23:59:59]  
+2,补分秒[2020-10-01 10:00:00, 2020-10-01 10:59:59]  
+3,补秒[2020-10-01 10:13:00, 2020-10-01 10:13:59]  
+
+使用方式:
+```
+this.BASE.dateQjChange(["2020-10-01", "2020-10-01"], 1) // 返回:[2020-10-01 00:00:00, 2020-10-01 23:59:59]
+```
+###### getNewNum(nStr)
+金额分割符,4位分割(仅数字)。
+>参数:  
+nStr:数字  
+
+使用方式:
+```
+this.BASE.getNewNum(123456789) // 返回:1,2345,6789
+```
+###### numberCeil(num)
+对一个数字上取舍,如1234,取舍结果是2000。
+适配万亿级别的数字
+>参数:  
+num: 数字。  
+
+使用方式:
+```
+this.BASE.numberCeil(1234) // 返回:2000
+this.BASE.numberCeil(12) // 返回:20
+```
+###### cascaderBugRepair(data)
+Ant和element-ui 级联相同bug - 底层存在children的时候会显示空模块的问题,此方法可以完成任意级别的递归找children。
+>参数:  
+data:原型数据。  
+
+使用方式:
+```
+this.BASE.cascaderBugRepair(树结构的数据) 
+```
+
+### 自定义滚动条
+使用方式如下:
+```
+<VueScroll>
+  <div style="width: 100px; height: 100px;">
+    内容
+  </div>
+</VueScroll>
+```
+
+### 404
+404.vue对所有未注入的路由地址进行拦截,统一处理。
+### 组件
+common/menu.vue菜单公共组件。
+
+# 运行、打包
+```
+npm run serve // 运行
+npm run dev // 打包 - 开发服务
+npm run test // 打包 - 测试服务
+npm run build // 打包 - 生产服务
+```
+
+
+# 项目前端基础要求
+### 项目框架基础:
+vue 脚手架4.5.12搭建vue2项目
+### 基础组件:
+vue 2.6.11 + ElementUI2.15.1 + axios0.21.1 + router3.2.0
+### 公共组件:
+Echarts5.1.0 报表  
+Excel:vue-json-excel0.3.0 导出excel  
+vuescroll:滚动条  
+等
+
+
+### 规范:
+1.	目录结构说明:
+Api:根据需求封装的请求,公共类型,不要随意修改。
+Assets:公共资源,包括图片,css文件,js文件,字体库等。
+Components:公共组件,根据项目需要,如果有重复可多次使用的相同或相似的功能,分装为组件,方便重复使用。
+Router:index.js主路由和子路由,所有前端会分配子路由。
+Store:vuex,按需使用。
+Tools:公共JS方法,如日期格式化等。通过全局变量this.BASE.使用公用的方法。如有新的需求,可以自行添加,注释一定要详细明了。
+Views:所有页面。
+jsonData: 前端需要的数据
+2.	Vue文件分割开,html写在vue文件中,js写在assets/js/模块名称/*.js,Scss文件写在assets/css/模块名称/*.scss
+Vue文件引入方式: 
+
+```
+<script>
+  import main from '../assets/js/main'
+  export default main
+</script>
+
+<style lang="scss" scoped>
+  @import "../assets/css/main.scss";
+</style>
+```
+
+3.	文件起名按照驼峰法命名,包括文件夹名称、文件名称、变量名称、函数名称等,尽量使用准确的英文单词命名,减少拼音使用次数。
+4.	引用使用尽量使用如下格式引用:  
+```
+.set('@', resolve('src'))
+.set('@assets', resolve('src/assets'))
+.set('@components', resolve('src/components'))
+.set('@views', resolve('src/views'))
+.set('@store', resolve('src/store'));
+``` 
+
+例如:@import "../assets/css/main.less";改成@import "@assets/css/main.less";
+5.	Sass语法按照官方语法写,树级结构,使用class样式,不要使用id样式。
+6.	代码缩进,统一为2。设置方式:文件-首选项-设置,搜索tabsize。严格按照2的缩进编写代码,提高代码美观程度。
+7.	代码注释,方法用途(方法的输入、输出注释),关键代码注释。
+8.	代码自我优化,js,css代码自行优化,用最短得代码,高效完成功能和效果。
+9.	资源优化,图片资源,优化后再放入项目中,选择正确的资源放置位置。
+10.	防止死循环。
+11.	自己的功能做完后需要自测。
+
+12.	接口访问,统一封装,统一通过this.API.get(url, 参数)
+13.	针对请求超过1s的接口,必须进行loading加载中提示。
+```
+this.$store.commit('loadingStore', true); // 全局的数据 加载中.... - 开
+this.$store.commit('loadingStore', false); // 全局的数据 加载中.... - 关
+```
+14.	防抖动。
+15.	控制台零报错,见到错误第一时间解决。
+
+16.	引入新的组件,前端成员共同商讨,选择合适、轻量、简单易上手的组件。
+17.	组件引入后,如果无用请卸载。
+18.	遇到技术难点,攻克时不要一把抓,什么都粘进来,弄明白每一行的用途,并注释。
+19.	后台提供可阅读的接口文档,包括接口地址、请求类型、请求参数、返回数据注释用途等。
+20.	与后台约定所有请求的基本头类型,推荐application/json,或约定一个其他类型的。
+21.	与后台约定数据格式,请求格式、返回数据的格式,code统一使用200int型。
+22.	与后台约定,message提示内容由后台编写,所有code !==200的自动显示message内容。
+23.	Git代码统一管理,没有账号就先借用一下使用。有账号的按照自己的账号编写代码。
+每天提交一次代码,如单个功能未开发完成可以在完成后提交。每周提交一次代码。
+代码编写规范:先拉取最新代码-创建本地分支-开发-提交-合并分支-本地验证无误、无冲突可以push。
+Git使用教程:https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424
+24.	Git commit 时需要填写提交关键信息。
+
+
+
+### 本次改动目标:
+1.	全面完成前后端分离,完成解耦。
+2.	统一项目全局的常用文字的字体、字号、字色。
+3.	基于ElementUI开发,需统一使用其按钮、表格、表单等,形成风格统一。
+4.	提升报表Echarts,按照最新的API实现所有报表。
+5.	地图建议设计更好看的地图图片,或更换百度高德等,后期讨论、调研决定。
+6.	设计方面,如UI时间比较紧,建议只设计登录页、框架页面、公共页出设计稿,定稿后修改。其他所有的表格表单,按照ElementUI实现。
+
+### 开发工具:
+Visual Studio Code V1.55.2,小版本区别没关系。
+### 任务:
+2周移植项目。