# laws_sinotruk_client 框架继承注意要点 ==== 1. 中国重汽法规也有手机端,手机端单独开发部署,不与PC端混在一起 2. 升级最新版本的PDF.js 3. word文件预览暂定方案为KKFile(也可能要求转化,待定) 4. 在现有框架下解决初始加载慢的问题(即初始不加载全部组件,采用懒加载) 5. 加入ESLint配置(参考最新框架),对新开发页面进行代码规范处理 6. 从蔚来拉取页面,绘制首页(后续修改)、文档管理-文档库、文档工具-文档拆分、文档工具-文档对比、业务支持-对外报告管理(改名为资料中心)、 信息中心-我的消息、个人中心-我的收藏、日志中心-操作日志、系统管理(全部)、开发工具全部(仅给开发用) 7. 分析结果由项目二组提供excel说明项目框架各部分范围(高嵩负责) laws-sinotruk-web ==== 当前最新版本: 2.5.1 Overview ---- 基于 [Ant Design of Vue](https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/) 实现的 Ant Design Pro Vue 版 laws-sinotruk 的前端UI框架,采用前后端分离方案,提供强大代码生成器的快速开发平台。 #### 前端技术 - 基础框架:[ant-design-vue](https://github.com/vueComponent/ant-design-vue) - Ant Design Of Vue 实现 - JavaScript框架:Vue - Webpack - node - yarn - eslint - @vue/cli 3.2.1 - [vue-cropper](https://github.com/xyxiao001/vue-cropper) - 头像裁剪组件 - [@antv/g2](https://antv.alipay.com/zh-cn/index.html) - Alipay AntV 数据可视化图表 - [Viser-vue](https://viserjs.github.io/docs.html#/viser/guide/installation) - antv/g2 封装实现 #### 代码规范 - 代码迁移需要注意 不重复的代码文件,直接拷贝到对应的目录下;重复文件(主要是配置文件),对比代码后copy/修改代码。 - 代码引入组件相关事项 - 代码规范 1.命名要有含义,变量命名使用驼峰命名; 2.每写一个功能需要加上注释; 3.代码优化,尽量共用 - 新增功能文件创建规范 1.命名要有含义 2.新增组件写在components文件里面 项目下载和运行 ---- - 安装依赖 ``` yarn install ``` - 开发模式运行 ``` yarn run serve ``` - 编译项目 ``` yarn run build ``` - Lints and fixes files ``` yarn run lint ``` 其他说明 ---- - 项目使用的 [vue-cli3](https://cli.vuejs.org/guide/), 请更新您的 cli - 关闭 Eslint (不推荐) 移除 `package.json` 中 `eslintConfig` 整个节点代码 - 修改 Ant Design 配色,在文件 `vue.config.js` 中,其他 less 变量覆盖参考 [ant design](https://ant.design/docs/react/customize-theme-cn) 官方说明 ```ecmascript 6 css: { loaderOptions: { less: { modifyVars: { /* less 变量覆盖,用于自定义 ant design 主题 */ 'primary-color': '#F5222D', 'link-color': '#F5222D', 'border-radius-base': '4px', }, javascriptEnabled: true, } } } ``` 附属文档 ---- - [Ant Design Vue](https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn) - [报表 viser-vue](https://viserjs.github.io/demo.html#/viser/bar/basic-bar) - [Vue](https://cn.vuejs.org/v2/guide) - [路由/菜单说明](https://github.com/zhangdaiscott/laws-sinotruk/tree/master/ant-design-jeecg-vue/src/router/README.md) - [ANTD 默认配置项](https://github.com/zhangdaiscott/laws-sinotruk/tree/master/ant-design-jeecg-vue/src/defaultSettings.js) - 其他待补充... 备注 ---- > @vue/cli 升级后,eslint 规则更新了。由于影响到全部 .vue 文件,需要逐个验证。既暂时关闭部分原本不验证的规则,后期维护时,在逐步修正这些 rules #### 编码排重使用示例 重复校验效果: ![输入图片说明](https://static.oschina.net/uploads/img/201904/19191836_eGkQ.png "在这里输入图片标题") 1.引入排重接口,代码如下: ``` import { duplicateCheck } from '@/api/api' ``` 2.找到编码必填校验规则的前端代码,代码如下: ``` code: { rules: [ { required: true, message: '请输入编码!' }, {validator: this.validateCode} ] }, ``` 3.找到rules里validator对应的方法在哪里,然后使用第一步中引入的排重校验接口. 以用户online表单编码为示例,其中四个必传的参数有: ``` {tableName:表名,fieldName:字段名,fieldVal:字段值,dataId:表的主键}, ``` 具体使用代码如下: ``` validateCode(rule, value, callback){ let pattern = /^[a-z|A-Z][a-z|A-Z|\d|_|-]{0,}$/; if(!pattern.test(value)){ callback('编码必须以字母开头,可包含数字、下划线、横杠'); } else { var params = { tableName: "onl_cgreport_head", fieldName: "code", fieldVal: value, dataId: this.model.id }; duplicateCheck(params).then((res)=>{ if(res.success){ callback(); }else{ callback(res.message); } }) } }, ``` 4. 表单使用a-form-model 且内部有v-if存在时,防止校验错位,必须加key值 ```html ``` 5、表格内插槽 禁止用span 包裹,用template 或者div ```html
{{ $t('edit') }} {{ $t('delete') }}
``` 6、style中eslint的报错可以 改成在script 中引入改掉 ```less ``` 修改后 ```js ```