前端代码
This commit is contained in:
@@ -0,0 +1,222 @@
|
||||
# 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
|
||||
|
||||
|
||||
#### 编码排重使用示例
|
||||
|
||||
重复校验效果:
|
||||

|
||||
|
||||
1.引入排重接口,以及获取混淆code方法,代码如下:
|
||||
|
||||
```
|
||||
import { duplicateCheck } from '@/api/api'
|
||||
import { getConfusionCode } from '@/utils/util'
|
||||
```
|
||||
2.找到编码必填校验规则的前端代码,代码如下:
|
||||
|
||||
```
|
||||
<a-input placeholder="请输入编码" v-decorator="['code', validatorRules.code ]"/>
|
||||
|
||||
code: {
|
||||
rules: [
|
||||
{ required: true, message: '请输入编码!' },
|
||||
{validator: this.validateCode}
|
||||
]
|
||||
},
|
||||
```
|
||||
3.找到rules里validator对应的方法在哪里,然后使用第一步中引入的排重校验接口.
|
||||
以用户online表单编码为示例,其中三个必传的参数有:
|
||||
|
||||
```
|
||||
{confusionCode:混淆code,fieldVal:字段值,dataId:表的主键,
|
||||
encrypt:是否数据库中加密(不加密不传该参数)},
|
||||
```
|
||||
具体使用代码如下:
|
||||
|
||||
```
|
||||
validateCode(rule, value, callback){
|
||||
let pattern = /^[a-z|A-Z][a-z|A-Z|\d|_|-]{0,}$/;
|
||||
if(!pattern.test(value)){
|
||||
callback('编码必须以字母开头,可包含数字、下划线、横杠');
|
||||
} else {
|
||||
var confusionCode = getConfusionCode('tableName', 'fieldName')
|
||||
var params = {
|
||||
// encrypt: 1, // 数据库中是加密的信息,就要传该参数,否则不传
|
||||
confusionCode,
|
||||
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
|
||||
<a-col :span="24" v-if="isLength">
|
||||
<a-form-model-item :label="$t('system.tag.fieldLength')" prop="dbLength" key="dbLength">
|
||||
<a-input-number v-model="form.dbLength" :min="1" :max="200" :placeholder="$t('pleaseEnter') + $t('system.tag.fieldLength')"
|
||||
style="width: 100%" :formatter="limitNumber" :parser="limitNumber"/>
|
||||
</a-form-model-item>
|
||||
</a-col>
|
||||
```
|
||||
|
||||
5、表格内插槽 禁止用span 包裹,用template 或者div
|
||||
```html
|
||||
<div slot="action" class="table-action" slot-scope="text, record">
|
||||
<a class="action-edit" @click="handleEdit(record)" v-has="'area:edit'"
|
||||
>{{ $t('edit') }}</a>
|
||||
<a class="table-del" @click="handleDelete(record.id)" v-has="'area:delete'"
|
||||
>{{ $t('delete') }}</a>
|
||||
</div>
|
||||
```
|
||||
|
||||
6、style中eslint的报错可以 改成在script 中引入改掉
|
||||
```less
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
</style>
|
||||
```
|
||||
修改后
|
||||
```js
|
||||
<script>
|
||||
import '@assets/less/common.less'
|
||||
</script>
|
||||
```
|
||||
Reference in New Issue
Block a user