Appearance
配置项
ts
createPrime(options: IPrimeAppOption)createPrime(options: IPrimeAppOption)appId
- 类型:
string - 默认值:
undefined
应用 ID,必填。
appName
- 类型:
string - 默认值:
Gauss
应用名称,必填。
clientId
- 类型:
string - 默认值:
undefined
客户端 ID。
BASE_URL
- 类型:
string - 默认值:
undefined
项目根目录,必填。
构建工具使用 webpack 时值应为 p,构建工具使用 vite 时通过 (await i 获取。
routes
- 类型:
RouteRecordRaw[] - 默认值:
[]
js
createPrime({
routes: [
{
path: '/crud-demo',
name: 'crud-demo',
component: () => import('./demo.vue'),
},
...
],
})createPrime({
routes: [
{
path: '/crud-demo',
name: 'crud-demo',
component: () => import('./demo.vue'),
},
...
],
})path
- 类型:
string - 默认值:
undefined
路径名称
name
- 类型:
string - 默认值:
undefined
别名
component
- 类型:
Component - 默认值:
undefined
组件
meta
- 类型:
IMeta - 默认值:
undefined
ts
interface IMeta {
// 值为 true 时开启 keepAlive
isKeepAlive?: boolean
// 配置 document.title
title?: string
// 值为 true 时跳过路由鉴权
noAuth?: boolean
// 设置根节点,值为 true 时既不会在菜单布局内
root?: boolean
// 标记是否是新菜单
new?: boolean
// 父级路由地址,继承父级路由地址下的所有按钮权限配置
parentRoutePath?: string
}interface IMeta {
// 值为 true 时开启 keepAlive
isKeepAlive?: boolean
// 配置 document.title
title?: string
// 值为 true 时跳过路由鉴权
noAuth?: boolean
// 设置根节点,值为 true 时既不会在菜单布局内
root?: boolean
// 标记是否是新菜单
new?: boolean
// 父级路由地址,继承父级路由地址下的所有按钮权限配置
parentRoutePath?: string
}home
- 类型:
string - 默认值:
undefined
首页地址。
logo
- 类型:
string|{path?: string, link?: boolean, onClick?: () => void} - 默认值:
undefined
网站 logo 配置
js
import logo from './assets/logo.svg'
const prime = createPrime({
logo,
})
const prime = createPrime({
logo: {
path: logo,
// 是否可点击,为true时可点击
link: false,
// 点击logo的回调事件
onClick() {
// TODO
},
},
})import logo from './assets/logo.svg'
const prime = createPrime({
logo,
})
const prime = createPrime({
logo: {
path: logo,
// 是否可点击,为true时可点击
link: false,
// 点击logo的回调事件
onClick() {
// TODO
},
},
})isFirstLetterMenuIcon
- 类型:
boolean - 默认值:
false
当未配置图标时,是否使用菜单名称首字母作为图标展示。
enableMessage
- 类型:
boolean - 默认值:
false
是否开启站内信功能。
responsiveLayoutEnabled
- 类型:
boolean - 默认值:
false
是否开启响应式布局。
progress
- 类型:
boolean - 默认值:
true
是否开启进度条。
watermark
- 类型:
boolean - 默认值:
true
是否开启水印。
gondar
埋点配置。
gondar.enabled
- 类型:
boolean - 默认值:
false
是否开启。
gondar.collectUrl
- 类型:
string - 默认值:
//cloud-api.tineco.com/sensorsdata/${appId}
采集地址,默认值内的 appId 为应用 ID。
gondar.debugger
- 类型:
boolean - 默认值:
false
是否开启 debugger。
gondar.platform
- 类型:
string - 默认值:
web
平台,可选值 web h5。
i18nOptions
- 类型:
object - 默认值:
{}
国际化配置。详情
i18nOptions.codes
国际化支持语言配置,默认为“简体中文”和“English”,无需再重复配置
对应语言的标识符,默认值为 zh en。
期望下拉语言列表支持繁体中文,您可以这样做
js
const prime = createPrime({
...
i18nOptions: {
codes: [{ label: '繁体中文', value: 'zh-tw' }],
},
})const prime = createPrime({
...
i18nOptions: {
codes: [{ label: '繁体中文', value: 'zh-tw' }],
},
})i18nOptions.messages
定义国际化文件。
src/locales/zh.ts
js
import { defineLocale } from '@gauss/prime'
export default defineLocale({
siteTitle: 'Gauss',
})import { defineLocale } from '@gauss/prime'
export default defineLocale({
siteTitle: 'Gauss',
})src/locales/en.ts
js
import { defineLocale } from '@gauss/prime'
export default defineLocale({
siteTitle: 'Gauss',
})import { defineLocale } from '@gauss/prime'
export default defineLocale({
siteTitle: 'Gauss',
})main.ts
js
import { createPrime } from '@gauss/prime'
import zh from './locales/zh'
import en from './locales/en'
const prime = createPrime({
...
i18nOptions: {
messages: {
zh,
en,
}
},
})import { createPrime } from '@gauss/prime'
import zh from './locales/zh'
import en from './locales/en'
const prime = createPrime({
...
i18nOptions: {
messages: {
zh,
en,
}
},
})i18nOptions.elementMessages
定义 Element-Plus 国际化文件。使用方式同 i18nOptions.messages
js
import elZhTW from 'element-plus/es/locale/lang/zh-tw'
const prime = createPrime({
...
i18nOptions: {
elementMessages: {
'zh-tw': elZhTW,
},
},
})import elZhTW from 'element-plus/es/locale/lang/zh-tw'
const prime = createPrime({
...
i18nOptions: {
elementMessages: {
'zh-tw': elZhTW,
},
},
})i18nOptions.hamletMessages
定义 Hamlet-web 国际化文件。使用方式同 i18nOptions.messages
js
import hamletZhTW from './locales/zh-tw/hamlet'
const prime = createPrime({
...
i18nOptions: {
hamletMessages: {
'zh-tw': hamletZhTW,
},
},
})import hamletZhTW from './locales/zh-tw/hamlet'
const prime = createPrime({
...
i18nOptions: {
hamletMessages: {
'zh-tw': hamletZhTW,
},
},
})fileRepository
- 类型:
string - 默认值:
undefined
文件仓库,非必填。
slots
插槽
slots.layoutHeaderLeft
- 类型:
Vue.Component - 默认值:
undefined
布局头部左侧内容插槽。
Crumb.vue
vue
<template>
<el-breadcrumb :separator-icon="ArrowRight">
<el-breadcrumb-item :to="{ path: '/' }">homepage</el-breadcrumb-item>
<el-breadcrumb-item>promotion management</el-breadcrumb-item>
<el-breadcrumb-item>promotion list</el-breadcrumb-item>
<el-breadcrumb-item>promotion detail</el-breadcrumb-item>
</el-breadcrumb>
</template>
<script lang="ts" setup>
import { ArrowRight } from '@element-plus/icons-vue'
</script><template>
<el-breadcrumb :separator-icon="ArrowRight">
<el-breadcrumb-item :to="{ path: '/' }">homepage</el-breadcrumb-item>
<el-breadcrumb-item>promotion management</el-breadcrumb-item>
<el-breadcrumb-item>promotion list</el-breadcrumb-item>
<el-breadcrumb-item>promotion detail</el-breadcrumb-item>
</el-breadcrumb>
</template>
<script lang="ts" setup>
import { ArrowRight } from '@element-plus/icons-vue'
</script>main.js
js
import { markRaw } from 'vue'
import { createPrime } from '@gauss/prime'
import Crumb from './components/Crumb.vue'
const prime = createPrime({
...
slots: {
layoutHeaderLeft: markRaw(Crumb),
},
})import { markRaw } from 'vue'
import { createPrime } from '@gauss/prime'
import Crumb from './components/Crumb.vue'
const prime = createPrime({
...
slots: {
layoutHeaderLeft: markRaw(Crumb),
},
})slots.avatarDropdownMenu
- 类型:
Vue.Component - 默认值:
undefined
登录后头像下拉菜单插槽
avatar-menu.vue
vue
<template>
<el-dropdown-item @click="showMsg('个人设置')">个人设置</el-dropdown-item>
<el-dropdown-item @click="showMsg('日志')">日志</el-dropdown-item>
</template>
<script setup>
import { ElMessage } from 'element-plus'
const showMsg = msg => {
ElMessage.success(`您点击了自定义下拉菜单:${msg}`)
}
</script><template>
<el-dropdown-item @click="showMsg('个人设置')">个人设置</el-dropdown-item>
<el-dropdown-item @click="showMsg('日志')">日志</el-dropdown-item>
</template>
<script setup>
import { ElMessage } from 'element-plus'
const showMsg = msg => {
ElMessage.success(`您点击了自定义下拉菜单:${msg}`)
}
</script>main.js
js
import { markRaw } from 'vue'
import { createPrime } from '@gauss/prime'
import AvatarMenu from './components/avatar-menu.vue'
const prime = createPrime({
...
slots: {
avatarDropdownMenu: markRaw(AvatarMenu),
},
})import { markRaw } from 'vue'
import { createPrime } from '@gauss/prime'
import AvatarMenu from './components/avatar-menu.vue'
const prime = createPrime({
...
slots: {
avatarDropdownMenu: markRaw(AvatarMenu),
},
})toolbar
- 类型:
String[],可选值:'dark' | 'language' | 'fullscreen' | 'themeSetting' | 'message' - 默认值:
[]
头部右侧导航项配置,控制显示或隐藏
js
createPrime({
toolbar: ['dark', 'language', 'fullscreen', 'themeSetting'],
})createPrime({
toolbar: ['dark', 'language', 'fullscreen', 'themeSetting'],
})nav
- 类型:
INav[] - 默认值:
[]
头部右侧自定义导航项
js
import { Gitlab } from '@icon-park/vue-next'
createPrime({
nav: [
{
icon: markRaw(shallowRef(Gitlab)),
link: 'https://www.baidu.com/',
blank: true,
text: 'Gitlab',
id: 'Gitlab',
},
],
})import { Gitlab } from '@icon-park/vue-next'
createPrime({
nav: [
{
icon: markRaw(shallowRef(Gitlab)),
link: 'https://www.baidu.com/',
blank: true,
text: 'Gitlab',
id: 'Gitlab',
},
],
})自定义导入组件
js
import HelpDropdown from './components/help-dropdown.vue'
createPrime({
nav: [
{
icon: markRaw(shallowRef(HelpDropdown)),
id: 'HelpDropdown',
},
],
})import HelpDropdown from './components/help-dropdown.vue'
createPrime({
nav: [
{
icon: markRaw(shallowRef(HelpDropdown)),
id: 'HelpDropdown',
},
],
})icon
- 类型:
string - 默认值:
undefined
显示图标
link
- 类型:
string - 默认值:
undefined
链接地址
blank
- 类型:
boolean - 默认值:
true
是否打开新标签,默认值为 true
forwardUrl
转发地址配置
ts
interface IRequestForwardUrlOption {
[rule: string]: {
target: string
rewrite: {
[rule: string]: string
}
}
}interface IRequestForwardUrlOption {
[rule: string]: {
target: string
rewrite: {
[rule: string]: string
}
}
}示例
js
createPrime({
forwardUrl: {
'^/test-api': {
// 转发地址
target: 'https://ibu-api-test.tineco.com',
// 重写uri
rewrite: {
'^/test-api': '/test-api',
},
},
},
})createPrime({
forwardUrl: {
'^/test-api': {
// 转发地址
target: 'https://ibu-api-test.tineco.com',
// 重写uri
rewrite: {
'^/test-api': '/test-api',
},
},
},
})onFrameLoad
- 类型:
({ router }: { router: Router }): void - 默认值:
undefined
框架加载完成后的回调函数,返回一个 router 参数,在此阶段可做些额外操作,比如:自定义路由拦截。
js
createPrime({
onFrameLoad({ router }) {
router.afterEach(to => {
// TODO
})
// TODO
},
})createPrime({
onFrameLoad({ router }) {
router.afterEach(to => {
// TODO
})
// TODO
},
})onAuthFailed
- 类型:
() => void - 默认值:
undefined
鉴权错误的回调
versionCheckEnabled
- 类型:
boolean - 默认值:
true
是否开启框架版本检测,非必填。
Gauss