# 公共内容API ### API ###### requestData(options) 通用数据请求。 >options: 请求配置项 使用方式: ```javascript this.API.requestData({ isMust: true, // 请求是否携带 token ,默认为 true ,可缺省 showLoading: false, // 请求是否显示加载中遮罩层,默认 false ,可缺省 method: "GET", // 请求方式,默认为 GET ,可缺省 subUrl: "api/repassword", // 请求接口地址,必传项 timeout: 3000, // 请求超时时间,默认 3s ,可缺省 data: { name: "admin", pasword: "123456" }, // 请求所携带参数,默认为空,可缺省 success (res) { // 请求成功的回调 }, fail (error) { // 请求失败的回调 } }); ``` ###### 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(树结构的数据) ``` ### 自定义滚动条 使用方式如下: ```
内容
``` ### 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文件引入方式: ``` ``` 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周移植项目。