From 93723e70d32c2451c7984798ec5b4d9947437e37 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期三, 01 四月 2026 09:45:25 +0800
Subject: [PATCH] #前端
---
rsf-design/src/components/core/forms/art-search-bar/index.vue | 6 +
rsf-design/src/router/modules/index.js | 2
rsf-design/src/router/core/MenuProcessor.js | 6 +
rsf-design/src/utils/sys/upgrade.js | 2
rsf-design/src/locales/langs/en.json | 28 ++++----
rsf-design/src/plugins/echarts.js | 2
rsf-design/src/router/core/RouteRegistry.js | 4 +
rsf-design/src/locales/langs/zh.json | 28 ++++----
rsf-design/src/components/core/layouts/art-header-bar/index.vue | 60 +------------------
9 files changed, 48 insertions(+), 90 deletions(-)
diff --git a/rsf-design/src/components/core/forms/art-search-bar/index.vue b/rsf-design/src/components/core/forms/art-search-bar/index.vue
index 5d5ea8a..3a63224 100644
--- a/rsf-design/src/components/core/forms/art-search-bar/index.vue
+++ b/rsf-design/src/components/core/forms/art-search-bar/index.vue
@@ -175,7 +175,7 @@
gutter: { required: false, default: 12 },
isExpand: { required: false, default: false },
labelPosition: { required: false, default: 'right' },
- labelWidth: { required: false, default: '70px' },
+ labelWidth: { required: false, default: '100px' },
showExpand: { required: false, default: true },
defaultExpanded: { required: false, default: false },
buttonLeftLimit: { required: false, default: 2 },
@@ -360,6 +360,10 @@
.art-search-bar {
padding: 15px 20px 0;
+ :deep(.el-form-item__label) {
+ white-space: nowrap;
+ }
+
.action-column {
flex: 1;
max-width: 100%;
diff --git a/rsf-design/src/components/core/layouts/art-header-bar/index.vue b/rsf-design/src/components/core/layouts/art-header-bar/index.vue
index d43b54a..0e2cb59 100644
--- a/rsf-design/src/components/core/layouts/art-header-bar/index.vue
+++ b/rsf-design/src/components/core/layouts/art-header-bar/index.vue
@@ -43,11 +43,6 @@
@click="reload"
/>
- <!-- 蹇�熷叆鍙� -->
- <ArtFastEnter v-if="shouldShowFastEnter && width >= headerBarFastEnterMinWidth">
- <ArtIconButton icon="ri:function-line" class="ml-3" />
- </ArtFastEnter>
-
<!-- 闈㈠寘灞� -->
<ArtBreadcrumb
v-if="(shouldShowBreadcrumb && isLeftMenu) || (shouldShowBreadcrumb && isDualMenu)"
@@ -109,16 +104,6 @@
</template>
</ElDropdown>
- <!-- 閫氱煡鎸夐挳 -->
- <ArtIconButton
- v-if="shouldShowNotification"
- icon="ri:notification-2-line"
- class="notice-button relative"
- @click="visibleNotice"
- >
- <div class="absolute top-2 right-2 size-1.5 !bg-danger rounded-full"></div>
- </ArtIconButton>
-
<!-- 鑱婂ぉ鎸夐挳 -->
<ArtIconButton
v-if="shouldShowChat"
@@ -131,21 +116,9 @@
<!-- 璁剧疆鎸夐挳 -->
<div v-if="shouldShowSettings">
- <ElPopover :visible="showSettingGuide" placement="bottom-start" :width="190" :offset="0">
- <template #reference>
- <div class="flex-cc">
- <ArtIconButton icon="ri:settings-line" class="setting-btn" @click="openSetting" />
- </div>
- </template>
- <template #default>
- <p
- >{{ $t('topBar.guide.title')
- }}<span :style="{ color: systemThemeColor }"> {{ $t('topBar.guide.theme') }} </span
- >銆� <span :style="{ color: systemThemeColor }"> {{ $t('topBar.guide.menu') }} </span
- >{{ $t('topBar.guide.description') }}
- </p>
- </template>
- </ElPopover>
+ <div class="flex-cc">
+ <ArtIconButton icon="ri:settings-line" class="setting-btn" @click="openSetting" />
+ </div>
</div>
<!-- 涓婚鍒囨崲鎸夐挳 -->
@@ -162,9 +135,6 @@
<!-- 鏍囩椤� -->
<ArtWorkTab />
-
- <!-- 閫氱煡 -->
- <ArtNotification v-model:value="showNotice" ref="notice" />
</div>
</template>
@@ -196,23 +166,17 @@
const {
shouldShowMenuButton,
shouldShowRefreshButton,
- shouldShowFastEnter,
shouldShowBreadcrumb,
shouldShowGlobalSearch,
shouldShowFullscreen,
- shouldShowNotification,
shouldShowChat,
shouldShowLanguage,
shouldShowSettings,
shouldShowThemeToggle,
- fastEnterMinWidth: headerBarFastEnterMinWidth
} = useHeaderBar()
- const { menuOpen, systemThemeColor, showSettingGuide, menuType, isDark, tabStyle } =
- storeToRefs(settingStore)
+ const { menuOpen, showSettingGuide, menuType, isDark, tabStyle } = storeToRefs(settingStore)
const { language } = storeToRefs(userStore)
const { menuList } = storeToRefs(menuStore)
- const showNotice = ref(false)
- const notice = ref(null)
const isLeftMenu = computed(() => menuType.value === MenuTypeEnum.LEFT)
const isDualMenu = computed(() => menuType.value === MenuTypeEnum.DUAL_MENU)
const isTopMenu = computed(() => menuType.value === MenuTypeEnum.TOP)
@@ -223,10 +187,6 @@
const { isFullscreen, toggle: toggleFullscreen } = useFullscreen()
onMounted(() => {
initLanguage()
- document.addEventListener('click', bodyCloseNotice)
- })
- onUnmounted(() => {
- document.removeEventListener('click', bodyCloseNotice)
})
const toggleFullScreen = () => {
toggleFullscreen()
@@ -261,18 +221,6 @@
}
const openSearchDialog = () => {
mittBus.emit('openSearchDialog')
- }
- const bodyCloseNotice = (e) => {
- if (!showNotice.value) return
- const target = e.target
- const isNoticeButton = target.closest('.notice-button')
- const isNoticePanel = target.closest('.art-notification-panel')
- if (!isNoticeButton && !isNoticePanel) {
- showNotice.value = false
- }
- }
- const visibleNotice = () => {
- showNotice.value = !showNotice.value
}
const openChat = () => {
mittBus.emit('openChat')
diff --git a/rsf-design/src/locales/langs/en.json b/rsf-design/src/locales/langs/en.json
index 8572b24..cdbac21 100644
--- a/rsf-design/src/locales/langs/en.json
+++ b/rsf-design/src/locales/langs/en.json
@@ -411,7 +411,7 @@
"sessionList": "Sessions",
"searchPlaceholder": "Search session titles",
"noSessions": "No history sessions",
- "sessionTitle": "Session %{id}",
+ "sessionTitle": "Session {id}",
"pinAction": "Pin session",
"unpinAction": "Unpin session",
"renameAction": "Rename session",
@@ -431,9 +431,9 @@
"toolStatusRunning": "Running",
"collapseDetail": "Hide Details",
"viewDetail": "View Details",
- "toolInput": "Input: %{value}",
- "toolOutput": "Output summary: %{value}",
- "toolError": "Error: %{value}",
+ "toolInput": "Input: {value}",
+ "toolOutput": "Output summary: {value}",
+ "toolError": "Error: {value}",
"hasSummary": "Summary",
"noSummary": "No Summary",
"hasFacts": "Facts",
@@ -454,24 +454,24 @@
"send": "Send",
"renameDialogTitle": "Rename Session",
"sessionTitleField": "Session Title",
- "requestMetric": "Req: %{value}",
- "sessionMetric": "Session: %{id}",
- "promptMetric": "Prompt: %{value}",
- "modelMetric": "Model: %{value}",
+ "requestMetric": "Req: {value}",
+ "sessionMetric": "Session: {id}",
+ "promptMetric": "Prompt: {value}",
+ "modelMetric": "Model: {value}",
"promptLabel": "Prompt",
"modelLabel": "Model",
"modelSelectorLabel": "Chat Model",
"modelSelectorHint": "Switching only affects subsequent replies in this session and does not change the global default model.",
"modelSwitchFailed": "Failed to switch the chat model",
"defaultModelSuffix": "(Default)",
- "mcpMetric": "MCP: %{value}",
- "historyMetric": "History: %{value}",
+ "mcpMetric": "MCP: {value}",
+ "historyMetric": "History: {value}",
"mcpLabel": "MCP",
"historyLabel": "History",
- "recentMetric": "Recent: %{value}",
- "elapsedMetric": "Elapsed: %{value} ms",
- "firstTokenMetric": "First token: %{value} ms",
- "tokenMetric": "Tokens: prompt %{prompt} / completion %{completion} / total %{total}"
+ "recentMetric": "Recent: {value}",
+ "elapsedMetric": "Elapsed: {value} ms",
+ "firstTokenMetric": "First token: {value} ms",
+ "tokenMetric": "Tokens: prompt {prompt} / completion {completion} / total {total}"
}
},
"table": {
diff --git a/rsf-design/src/locales/langs/zh.json b/rsf-design/src/locales/langs/zh.json
index 716e9cd..e6b3a50 100644
--- a/rsf-design/src/locales/langs/zh.json
+++ b/rsf-design/src/locales/langs/zh.json
@@ -413,7 +413,7 @@
"sessionList": "浼氳瘽鍒楄〃",
"searchPlaceholder": "鎼滅储浼氳瘽鏍囬",
"noSessions": "鏆傛棤鍘嗗彶浼氳瘽",
- "sessionTitle": "浼氳瘽 %{id}",
+ "sessionTitle": "浼氳瘽 {id}",
"pinAction": "缃《浼氳瘽",
"unpinAction": "鍙栨秷缃《",
"renameAction": "閲嶅懡鍚嶄細璇�",
@@ -433,9 +433,9 @@
"toolStatusRunning": "鎵ц涓�",
"collapseDetail": "鏀惰捣璇︽儏",
"viewDetail": "鏌ョ湅璇︽儏",
- "toolInput": "鍏ュ弬: %{value}",
- "toolOutput": "缁撴灉鎽樿: %{value}",
- "toolError": "閿欒: %{value}",
+ "toolInput": "鍏ュ弬: {value}",
+ "toolOutput": "缁撴灉鎽樿: {value}",
+ "toolError": "閿欒: {value}",
"hasSummary": "鏈夋憳瑕�",
"noSummary": "鏃犳憳瑕�",
"hasFacts": "鏈変簨瀹�",
@@ -456,24 +456,24 @@
"send": "鍙戦��",
"renameDialogTitle": "閲嶅懡鍚嶄細璇�",
"sessionTitleField": "浼氳瘽鏍囬",
- "requestMetric": "Req: %{value}",
- "sessionMetric": "Session: %{id}",
- "promptMetric": "Prompt: %{value}",
- "modelMetric": "Model: %{value}",
+ "requestMetric": "Req: {value}",
+ "sessionMetric": "Session: {id}",
+ "promptMetric": "Prompt: {value}",
+ "modelMetric": "Model: {value}",
"promptLabel": "Prompt",
"modelLabel": "Model",
"modelSelectorLabel": "瀵硅瘽妯″瀷",
"modelSelectorHint": "鍒囨崲鍚庝粎褰卞搷褰撳墠浼氳瘽鍚庣画鍥炲锛屼笉浼氭敼鍔ㄥ叏灞�榛樿妯″瀷銆�",
"modelSwitchFailed": "鍒囨崲瀵硅瘽妯″瀷澶辫触",
"defaultModelSuffix": "(榛樿)",
- "mcpMetric": "MCP: %{value}",
- "historyMetric": "History: %{value}",
+ "mcpMetric": "MCP: {value}",
+ "historyMetric": "History: {value}",
"mcpLabel": "MCP",
"historyLabel": "History",
- "recentMetric": "Recent: %{value}",
- "elapsedMetric": "鑰楁椂: %{value} ms",
- "firstTokenMetric": "棣栧寘: %{value} ms",
- "tokenMetric": "Tokens: prompt %{prompt} / completion %{completion} / total %{total}"
+ "recentMetric": "Recent: {value}",
+ "elapsedMetric": "鑰楁椂: {value} ms",
+ "firstTokenMetric": "棣栧寘: {value} ms",
+ "tokenMetric": "Tokens: prompt {prompt} / completion {completion} / total {total}"
}
},
"table": {
diff --git a/rsf-design/src/plugins/echarts.js b/rsf-design/src/plugins/echarts.js
index 20cf76c..7490d4c 100644
--- a/rsf-design/src/plugins/echarts.js
+++ b/rsf-design/src/plugins/echarts.js
@@ -21,6 +21,7 @@
GeoComponent,
VisualMapComponent
} from 'echarts/components'
+import { LegacyGridContainLabel } from 'echarts/features'
import { CanvasRenderer } from 'echarts/renderers'
echarts.use([
// 鍥捐〃绫诲瀷
@@ -43,6 +44,7 @@
BrushComponent,
GeoComponent,
VisualMapComponent,
+ LegacyGridContainLabel,
// 娓叉煋鍣�
CanvasRenderer
])
diff --git a/rsf-design/src/router/core/MenuProcessor.js b/rsf-design/src/router/core/MenuProcessor.js
index c750811..8a65b88 100644
--- a/rsf-design/src/router/core/MenuProcessor.js
+++ b/rsf-design/src/router/core/MenuProcessor.js
@@ -16,7 +16,8 @@
redirect: WORKBENCH_PATH,
meta: {
title: 'menus.dashboard.title',
- icon: 'ri:home-smile-2-line'
+ icon: 'ri:home-smile-2-line',
+ staticRoute: true
},
children: [
{
@@ -27,7 +28,8 @@
title: 'menus.dashboard.console',
icon: 'ri:home-smile-2-line',
keepAlive: false,
- fixedTab: true
+ fixedTab: true,
+ staticRoute: true
}
}
]
diff --git a/rsf-design/src/router/core/RouteRegistry.js b/rsf-design/src/router/core/RouteRegistry.js
index cd59c62..23b0219 100644
--- a/rsf-design/src/router/core/RouteRegistry.js
+++ b/rsf-design/src/router/core/RouteRegistry.js
@@ -29,6 +29,10 @@
(this.router.getRoutes?.() || []).map((route) => route?.path).filter(Boolean)
)
menuList.forEach((route) => {
+ if (route?.meta?.staticRoute) {
+ return
+ }
+
const routeConfig = this.transformer.transform(route)
const routePath = routeConfig?.path
diff --git a/rsf-design/src/router/modules/index.js b/rsf-design/src/router/modules/index.js
index 906f9ab..063f69c 100644
--- a/rsf-design/src/router/modules/index.js
+++ b/rsf-design/src/router/modules/index.js
@@ -1,10 +1,8 @@
-import { dashboardRoutes } from './dashboard'
import { systemRoutes } from './system'
import { resultRoutes } from './result'
import { exceptionRoutes } from './exception'
const routeModules = [
- dashboardRoutes,
systemRoutes,
resultRoutes,
exceptionRoutes
diff --git a/rsf-design/src/utils/sys/upgrade.js b/rsf-design/src/utils/sys/upgrade.js
index 2f6631f..6bc6974 100644
--- a/rsf-design/src/utils/sys/upgrade.js
+++ b/rsf-design/src/utils/sys/upgrade.js
@@ -131,7 +131,7 @@
async executeUpgrade(storedVersion, legacyStorage) {
try {
if (!upgradeLogList.value.length) {
- console.warn('[Upgrade] 鍗囩骇鏃ュ織鍒楄〃涓虹┖')
+ this.setStoredVersion(StorageConfig.CURRENT_VERSION)
return
}
const requireReLogin = this.shouldRequireReLogin(storedVersion)
--
Gitblit v1.9.1