2024-04-18 17:12:39 +08:00
2023-08-14 17:10:11 +08:00
2023-08-14 17:10:11 +08:00
2023-11-15 12:08:02 +08:00
2023-12-11 17:54:20 +08:00
2023-11-15 12:08:02 +08:00
2023-08-14 17:10:11 +08:00
2023-08-14 17:10:11 +08:00
2023-08-14 17:10:11 +08:00
2023-08-14 17:10:11 +08:00
2023-08-14 17:10:11 +08:00
2023-08-14 17:10:11 +08:00
2023-08-14 17:10:11 +08:00
2023-08-14 17:10:11 +08:00
2023-12-25 15:07:41 +08:00
2023-11-24 09:06:19 +08:00
2023-11-03 17:07:28 +08:00

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 实现的 Ant Design Pro Vue 版 laws-sinotruk 的前端UI框架,采用前后端分离方案,提供强大代码生成器的快速开发平台。

前端技术

  • 基础框架:ant-design-vue - Ant Design Of Vue 实现
  • JavaScript框架:Vue
  • Webpack
  • node
  • yarn
  • eslint
  • @vue/cli 3.2.1
  • vue-cropper - 头像裁剪组件
  • @antv/g2 - Alipay AntV 数据可视化图表
  • Viser-vue - antv/g2 封装实现

代码规范

  • 代码迁移需要注意

    不重复的代码文件,直接拷贝到对应的目录下;重复文件(主要是配置文件),对比代码后copy/修改代码。

  • 代码引入组件相关事项

  • 代码规范

    1.命名要有含义,变量命名使用驼峰命名;

    2.每写一个功能需要加上注释;

    3.代码优化,尽量共用

  • 新增功能文件创建规范

    1.命名要有含义

    2.新增组件写在components文件里面

项目下载和运行

  • 安装依赖
yarn install
  • 开发模式运行
yarn run serve
  • 内部测试 编译项目
yarn run build:test
  • 重汽测试环境 编译项目
yarn run build:srmstest
  • 重汽生产环境 编译项目
yarn run build
  • Lints and fixes files
yarn run lint

其他说明

  • 项目使用的 vue-cli3, 请更新您的 cli

  • 关闭 Eslint (不推荐) 移除 package.jsoneslintConfig 整个节点代码

  • 修改 Ant Design 配色,在文件 vue.config.js 中,其他 less 变量覆盖参考 ant design 官方说明

  css: {
    loaderOptions: {
      less: {
        modifyVars: {
          /* less 变量覆盖,用于自定义 ant design 主题 */

          'primary-color': '#F5222D',
          'link-color': '#F5222D',
          'border-radius-base': '4px',
        },
        javascriptEnabled: true,
      }
    }
  }

附属文档

备注

@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);
            }
          })
        }
      },
  1. 表单使用a-form-model 且内部有v-if存在时,防止校验错位,必须加key值
  <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

  <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 中引入改掉

<style scoped lang="less">
  @import '~@assets/less/common.less';
</style>

修改后

<script>
  import '@assets/less/common.less'
</script>
S
Description
No description provided
Readme
19 MiB
Languages
JavaScript 50.9%
Vue 45.2%
CSS 2.3%
HTML 1.3%
Less 0.3%