317 lines
7.2 KiB
Markdown
317 lines
7.2 KiB
Markdown
## 安装依赖说明
|
||
- 切换源,使用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('属性名')
|
||
```
|
||
<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, // 注册多语言
|
||
});
|
||
```
|