P

pingan-life-index-pro

中国平安官网

中国平安人寿(香港)


介绍

本工程为“中国平安人寿(香港) 官网”前端项目工程。


技术选型

技术框架

项目框架: vuejs

脚手架版本: vue-cli3

开发环境

node 版本: 推荐 v12.10.0 或以上

npm 版本: 推荐 6.10.3 或以上

开始使用


安装依赖 (建议使用国内镜像)

npm install

项目预览

npm run dev

项目打包

npm run build

项目打包 -- 沙箱环境

npm run sandbox

项目结构

.
├── build // webpack相关配置文件
├── dist // 通过src 目录编译后生成的文件目录,也是小程序开发的项目目录
├── node_modules // 依赖包
├── public // 静态资源目录
├── src // 开发目录
│   ├── api // 数据请求模块
│   ├── assets // 开发相关的静态文件原始资源
│   │   ├── fonts //字体文件
│   │   ├── images // 图片文件
│   ├── common // 通用内容
│   │   ├── lang // 国际化语言包
│   ├── components // 公共组件
│   ├── const // 静态数据
│   ├── mock // 本地数据模拟
│   ├── pages // 页面
│   ├── store // 状态管理
│   ├── style // 公共样式
│   ├── utils // 工具类
│   ├── App.vue // 根组件
│   ├── main.js // 文件入口
│   ├── router.js // 路由
├── test //  测试模块
├── babel.config.js //  babel配置文件
├── postcss.config.js //  postcss配置文件
├── package.json //  通过src 目录编译后生成的缓存目录
├── README.md //  项目说明
└── vue.config.js // vue 配置


规范说明

vue 文件分离

一般业务.vue 文件通常会在同一目录下拆分为.vue,.js,.scss 三个文件。

正常的创建和引用 vue 文件都是 html、css、js 三者在一起的,这样写起来虽然方便了,但是页面比较大或者代码比较多的情况下,即使使用组件有时代码也比较多,简单来说查找不变不利于编程,大的来说影像优化性能。将代码中的 html、css、js 分离出来是个很好的选择。

编码规范

本项目不使用 eslint 代码检查工具。

开发人员需遵循 vue 官方风格规范。

样式规范

  • 优先使用 _var.scss 声明的样式变量
  • font-family 名字顺序 Arial -> Microsoft YaHei

z-index 权重划分

  • 遮罩蒙层:5000
  • 导航栏:4000
  • element-ui:2000+
  • 自定义交互组件 如 date-picker: 800-900
  • 一般业务级:小于 100

响应式方案

通过 purecss+@media 方式实现。

选取原因:

  • 与 bootstrap 相比,purecss 更为轻量。

前后端数据交互

简述

为了实现前后端分离,前后端需要约定一套数据交互规范。后续前后端数据接口的输入输出需要按照本文档执行。

数据格式

数据格式: json

跨域处理使用跨域资源共享(Cross-Origin Resource Sharing)方式,允许跨域的接口需要在返回头中输出相应的 header。

数据接口输出

字段 数据类型 必要 参说明
success Boolean Y 是否请求成功(true:成功,false:失败)
errMsg Integer N 请求失败原因
code String Y 请求失败错误代码
content Object N 业务返回具体参数

数据加密

请求都需要进行加密。

加密方案:AES+RSA


国际化支持说明

使用说明

采用方案:i18n

在文件入口 main.js 注入 i18n

三语支持(默认繁体):

  • 繁体[tc]
  • 简体[zh]
  • 英文[en]

三语文件所在目录:

执行逻辑

访问页面时,会先从 localStorage 里获取历史选取语言,若活动结果为空,则默认使用繁体。

语言切换时,把当前选择语言注入到 i18n 并埋到 localStorage,同时广播事件,通知页面初始化(重新读取 cms 内容)。


备注

pages目录下,只有一个空vue文件的目录均为顺应要求临时占坑。

本地测试账号

91249124/ccc123!@# (可能会失效)


TODO

  • 后期需补充SEO优化,目标页面需讨论协商。