From 1194038279d8a378f2ce7cbea59a32d753becbf8 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期一, 30 三月 2026 08:16:47 +0800
Subject: [PATCH] feat: update rsf-design and redis integration
---
rsf-design/src/views/system/menu/index.vue | 29 ++++++++++++++++++++++++++---
1 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/rsf-design/src/views/system/menu/index.vue b/rsf-design/src/views/system/menu/index.vue
index d28afa8..3a79c27 100644
--- a/rsf-design/src/views/system/menu/index.vue
+++ b/rsf-design/src/views/system/menu/index.vue
@@ -53,6 +53,7 @@
import MenuDialog from './modules/menu-dialog.vue'
import { formatMenuTitle } from '@/utils/router'
+ import ArtSvgIcon from '@/components/core/base/art-svg-icon/index.vue'
import ArtButtonTable from '@/components/core/forms/art-button-table/index.vue'
import { useTableColumns } from '@/hooks/core/useTableColumns'
import { fetchGetMenuList } from '@/api/system-manage'
@@ -115,12 +116,34 @@
if (row.meta?.link) return '澶栭摼'
return '鏈煡'
}
+ const getMenuDisplayTitle = (row) => {
+ const titleKey = row.meta?.title || row.name || ''
+ const normalizedTitleKey =
+ titleKey && !String(titleKey).includes('.') ? `menu.${titleKey}` : titleKey
+ return formatMenuTitle(normalizedTitleKey)
+ }
+ const getMenuDisplayIcon = (row) => row.meta?.icon || row.icon || ''
const { columnChecks, columns } = useTableColumns(() => [
+ {
+ prop: 'meta.icon',
+ label: '鍥炬爣棰勮',
+ width: 96,
+ align: 'center',
+ formatter: (row) => {
+ const icon = getMenuDisplayIcon(row)
+
+ if (!icon) return h('span', { class: 'text-g-400' }, '-')
+
+ return h('div', { class: 'flex items-center justify-center' }, [
+ h(ArtSvgIcon, { icon, class: 'text-base text-g-700' })
+ ])
+ }
+ },
{
prop: 'meta.title',
label: '鑿滃崟鍚嶇О',
minWidth: 120,
- formatter: (row) => formatMenuTitle(row.meta?.title)
+ formatter: (row) => getMenuDisplayTitle(row)
},
{
prop: 'type',
@@ -245,11 +268,11 @@
})
}
const searchMenu = (items) => {
- const results = []
+ const results = []
for (const item of items) {
const searchName = appliedFilters.name?.toLowerCase().trim() || ''
const searchRoute = appliedFilters.route?.toLowerCase().trim() || ''
- const menuTitle = formatMenuTitle(item.meta?.title || '').toLowerCase()
+ const menuTitle = getMenuDisplayTitle(item).toLowerCase()
const menuPath = (item.path || '').toLowerCase()
const nameMatch = !searchName || menuTitle.includes(searchName)
const routeMatch = !searchRoute || menuPath.includes(searchRoute)
--
Gitblit v1.9.1