## 安装依赖说明 - 切换源,使用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: 未来替换为公司库 ### "js-cookie": "^3.0.1", 设置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 ``` 2. 引入 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中 3. 引入@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('属性名') ```
{{ $t('message.hello') }}
// 输出 :您好!
``` - 可变参数 ``` // 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, // 注册多语言 }); ```