Files
2025-05-19 17:29:51 +08:00

7.2 KiB
Raw Permalink Blame History

安装依赖说明

  • 切换源,使用http://192.168.30.37:7001/ 此为临时源,如果源有问题请联系楼呈祥
  • 全局安装lerna 最新版本,旧版本针对本地依赖引用有问题
  • titanOne3.5-core中执行yarn
  • 在titanOne3.5-core 目录中执行lerna bootstrap
  • titanOne-design-pro-vue 中执行yarn serve

菜单和桌面数据配置说明

菜单数据配置在router下的menus.js文件中,桌面数据配置在router下的desktops.js文件中,结构同之前。

文件结构说明

项目依赖说明

"core-js": "^3.8.3",

  • 它是JavaScript标准库的polyfill
  • 它尽可能的进行模块化,让你能选择你需要的功能
  • 它可以不污染全局空间
  • 它和babel高度集成,可以对core-js的引入进行最大程度的优化

"element-ui": "^2.15.13",

elementui 库,TODO: 未来替换为公司库

设置cookie,使用方式如下

  • 设置cookie
Cookies.set('name', 'value', { expires: 7, path: '' }); //7天过期

Cookies.set('name', { foo: 'bar' }); //设置一个json
  • 读取cookie
Cookies.get('name'); //获取cookie

Cookies.get(); //读取所有的cookie
  • 删除cookie
Cookies.remove('name'); //删除cookie时必须是同一个路径。

"nprogress": "^0.2.0",

主要用于页面跳转时展示的顶部进度条

"vue": "^2.6.14",≠

"vue-router": "^3.5.3",

"vuedraggable": "^2.24.3",

"vuex": "^3.6.2",

"vue-i18n": "8.22.2",

集成ecas|egate login

  1. 引入titanOne login
yarn add @erayt/titanOne3.0-web-login@^3.0.0 --dev
  1. 引入 titanOne login的依赖包
    "@erayt/titanOne3.0-web-login": "^3.0.0",
    "@erayt/eui3.5-customize-themes":"^1.0.9",
    "@erayt/titanOne-dll":"^3.2.33",
    "@erayt/eui2-themes":"3.2.32"

login跳转为静态页面跳转,依赖不需要在dependency中

  1. 引入@erayt/loginSub
yarn add @erayt/loginSub --dev

这个包主要是为了配置dev环境,登录页需要配置的配置内容

引入后,我们需要将对应的配置内容注入到vue.config.js中

 devServer: {
    
    port: 9527,
    ...loginConfig.devServerConfig
  },

其他依赖配置

  ...
 chainWebpack: (config) => {
    // 添加login 模块
    loginConfig.chainConfig(config);

    // 配置sourcemap
    const needSourcemap = isDev? 'source-map': false

    config.devtool(needSourcemap);

  ...

再次启动yarn serve

引入ecas相关api

比如消息盒子,比如自定义存储,ecas权限功能,webnet,通讯加密等

因为相关功能都是以Eui相关api开发的,所以若需要使用上述某一功能,则需要引入Eui底层相关包,

引入titanOne-combination

这个包是底层api的封装工具包,主要为一些基础函数做封装

yarn add @erayt/titanOne-combination

引入Observer

如果要实现ipc通讯,那么需要引入observer包

yarn add @erayt/titanOne-observer

多语言配置

文件路径为 src/lang/locale/

需要分别配置en 或者zh里面的index.js 文件

框架语言包

若使用框架组件,那么需要引入框架语言包,@erayt/language

路径说明

|- lang // 多语言文件夹 |--- index.js // 添加了集成框架语言包代码 |--- locale |----- en |------- index.js // 英文翻译文件 |------- message.js // 错误提示的英文文件 |----- zh |------- index.js // 中文翻译文件 |------- message.js // 错误提示英文文件

如何使用框架多语言包

在lang/index.js文件中需要调整如下代码

// 如果需要使用框架的多语言文件,则需要引入@erayt/language包
import lang, {mergeToolTip} from '@erayt/language'

Vue.use(VueI18n);

const messages = {
  en: {
    ...lang.en,
    ...customEN,
  },
  zh: {
    ...lang.zh,
    ...customZH
  }
}
// 引入框架的错误码后,需要调用mergeToolTip进行合并数据,此数据会加入到Eui.Messager.messages中
mergeToolTip({
  en_US: toolTipEn,
  zh_CN: toolTipZh
})

还需要调用mergeToolTip 函数,因为框架在后台错误码处理时有特殊的规则,所以错误码需要写在message.js中,如果不引入框架的请求,则全部写在index.js中即可。

在Vue中如何使用

多语言使用规则,参照 Vue-i18n的使用规则

  • 语法: $t('属性名')
  <p>{{ $t('message.hello') }}</p>

  // 输出 <p>您好!</p>
  • 可变参数
// zh 语言文件中这样配置
{
  name: '名字 {0} {1}'
}

使用时只要传入参数即可,参数可以是对象也可以是数组

// array
$t('name', ['Jack', 'Job'])
// object
$t('name', {'0':'Jack', '1': 'Job'])

vue-i18n 还提供了金额格式化:$n,日期格式化 $d ,等功能,这里就不说明了,

  • 默认语言设置 如果en语言包中不存在的内容,使用zh中的值
const i18n = new VueI18n({
  locale: 'en',
  fallbackLocale: 'zh',
  messages
})
  • 切换语言
// 不使用框架
this.$i18n.local = zh |en

// 使用框架,则只需使用框架的切换语言按钮即可

框架错误码解析

多主题

动态换肤

多套主题包

本地存放多套主题,两者有不同的命名空间,如写两套主题,一套叫 custom-theme ,一套叫 custom-eui-theme custom-theme 主题都在一个 .custom-theme的命名空间下,我们动态的在 body 上 add .custom-theme ; remove .custom-theme。

升级vue-cli 修改部分

vue-cli 内置了css-loader, style-loader, scss-loader, 所以配置文件中不再需要配置

项目中有使用css-module的变量导出,供组件使用css变量,所以需要将 element-variables.scss中的导出变量移到element-variables.module.scss

同时,在main.js中,需要引入element-variables.scss文件

网络库使用

  • @erayt/networkManager

service 插件化开发

低代码开发说明

项目中默认安装低代码的组件的依赖包,vue-dynamic

  • route.config.js,引用相应路由
import VueDynamic from 'vue-dynamic'
export default [
  {
    path: '/dynamic',
    component: VueDynamic.Viewer
  }
];
  • menu.json中配置菜单,在对应attributes属性中设置path,pageName和projectName
"attributes": {
  "client": {
    "loadMode": "component",
      "path": "/dynamic",  // 路由
      "extraParams":{ 
        "pageName":"dataImport",  // 对应页面英文名称
        "projectName":"sds"       // 对应项目名称
      }
    }
  }
  • main.js中注册插件
import rxd from 'vue-dynamic';
import 'vue-dynamic/dist/Dynamic.css';
rxd.titan.init();
  • vue.config.js中配置低代码服务地址
  '/phoenix': {
        target: 'http://192.168.193.94:8011',
      },
  • 安装低代码样式包 vue-dynamic-theme
main.js中引入
import "vue-dynamic-theme"
  • 注册多语言
  1. lang/index.js中引入低代码多语言包
import Vuedynamic from 'vue-dynamic'
const messages = {
  en_US: {
    ...其它多语言文件,
    ...Vuedynamic.lang.en // 低代码英文
  },
  zh_CN: {
    ...其它多语言文件,
    ...Vuedynamic.lang.zh // 低代码中文
  }
}

export default messages;

2.main.js引入多语言

import { messages } from "./lang";
service.registerApplication("myproject", {
  routeConfig,
  getters,
  modules,
  i18n: messages, // 注册多语言
});