add: bar components

This commit is contained in:
lbin
2026-07-10 15:11:42 +08:00
parent ab312fb24f
commit bed4d4dc4a
2 changed files with 8 additions and 0 deletions
+6
View File
@@ -53,6 +53,8 @@ export interface ShrimpAdminOptions {
locales?: Record<string, any> locales?: Record<string, any>
/** 语言列表,默认 [{ lang: 'zh-cn', name: '简体中文' }] */ /** 语言列表,默认 [{ lang: 'zh-cn', name: '简体中文' }] */
langList?: { lang: string; name: string }[] langList?: { lang: string; name: string }[]
/** 顶栏(userbar)自定义组件,按序渲染在语言切换左侧。业务侧注入全局头部小部件(如终端商户选择器) */
headerWidgets?: Component[]
} }
// ============== 源注册表 ============== // ============== 源注册表 ==============
@@ -138,6 +140,9 @@ export class VueAdmin extends ShrimpClient {
state = reactive({ isMobile: false }) state = reactive({ isMobile: false })
/** 顶栏自定义组件(由 createShrimpAdmin 的 headerWidgets 注入),userbar 按序渲染 */
headerWidgets: Component[] = []
private _token: string | null = null private _token: string | null = null
get token() { return this._token } get token() { return this._token }
set token(value: string | null) { set token(value: string | null) {
@@ -170,6 +175,7 @@ export class VueAdmin extends ShrimpClient {
super() super()
this.config = opts.config this.config = opts.config
this.langList = opts.langList || [{ lang: 'zh-cn', name: '简体中文' }] this.langList = opts.langList || [{ lang: 'zh-cn', name: '简体中文' }]
this.headerWidgets = opts.headerWidgets || []
if (opts.sources) { if (opts.sources) {
Object.assign(externalSources, opts.sources) Object.assign(externalSources, opts.sources)
+2
View File
@@ -1,5 +1,7 @@
<template> <template>
<div class="user-bar"> <div class="user-bar">
<!-- 业务侧注入的顶栏部件(headerWidgets),按序渲染在语言切换左侧 -->
<component :is="w" v-for="(w, i) in vueAdmin.headerWidgets" :key="i" />
<LangSwitch class="panel-item" /> <LangSwitch class="panel-item" />
<div class="panel-item" @click="screen"> <div class="panel-item" @click="screen">
<el-icon><el-icon-full-screen /></el-icon> <el-icon><el-icon-full-screen /></el-icon>