安装依赖说明
- 切换源,使用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
- 引入titanOne login
yarn add @erayt/titanOne3.0-web-login@^3.0.0 --dev
- 引入 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中
- 引入@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"
- 注册多语言
- 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, // 注册多语言
});