+
{{ item.productName }}
{{ item.productGroupName || item.productGroup }}
- {{ item.productName }}
{{ formatRouteTimeliness(item) }} {{ copy.days }}
@@ -145,21 +145,9 @@
· {{ copy.ddpHint }}
· {{ copy.dduHint }}
-
+
{{ item.productDescription }}
-
{{ copy.register }}
@@ -237,7 +225,6 @@
const search = ref('');
const currentPage = ref(1);
const bodyRef = ref(null);
- const expanded = ref>({});
const groupChips = computed(() => {
const groups = (catalog.value?.groups || []).map((g) => ({ code: g.code, name: g.name || g.code }));
@@ -324,11 +311,6 @@
resetPage();
}
- function toggleExpand(id: string | number) {
- const key = String(id);
- expanded.value = { ...expanded.value, [key]: !expanded.value[key] };
- }
-
function askItem(item: RouteItem) {
emit('ask', { text: buildRouteAskText(item, destFilter.value, lang.value), intentId: 'quote' });
}
diff --git a/src/views/site/TextType.vue b/src/views/site/TextType.vue
index 061705d..6afce35 100644
--- a/src/views/site/TextType.vue
+++ b/src/views/site/TextType.vue
@@ -123,7 +123,13 @@
watch(
() => props.text,
() => {
+ // text 变化时必须主动重启;若此时 displayedText 已是空串,依赖状态 watch 不会再触发
resetAnimation();
+ if (!isVisible.value) return;
+ clearTimeoutIfNeeded();
+ timeout = setTimeout(() => {
+ executeTypingAnimation();
+ }, props.initialDelay);
}
);
diff --git a/src/views/site/index.vue b/src/views/site/index.vue
index 54afdd2..7da490b 100644
--- a/src/views/site/index.vue
+++ b/src/views/site/index.vue
@@ -208,16 +208,24 @@
ensureOg('og:type', 'website');
}
+ function onMobileNavBackdrop(e: MouseEvent) {
+ const navEl = document.getElementById('navbar');
+ if (!navEl || e.target !== navEl) return;
+ closeMobileNav();
+ }
+
function openMobileNav() {
document.body.classList.add('mobile-nav-active');
document.querySelectorAll('.mobile-nav-show').forEach((n) => n.classList.add('d-none'));
document.querySelectorAll('.mobile-nav-hide').forEach((n) => n.classList.remove('d-none'));
+ document.getElementById('navbar')?.addEventListener('click', onMobileNavBackdrop);
}
function closeMobileNav() {
document.body.classList.remove('mobile-nav-active');
document.querySelectorAll('.mobile-nav-show').forEach((n) => n.classList.remove('d-none'));
document.querySelectorAll('.mobile-nav-hide').forEach((n) => n.classList.add('d-none'));
+ document.getElementById('navbar')?.removeEventListener('click', onMobileNavBackdrop);
}
function syncHash(id: string) {
@@ -324,6 +332,10 @@
function onKeydown(e: KeyboardEvent) {
if (e.key === 'Escape') {
+ if (document.body.classList.contains('mobile-nav-active')) {
+ closeMobileNav();
+ return;
+ }
closePanel();
historyOpen.value = false;
wecomOpen.value = false;
@@ -336,6 +348,14 @@
document.documentElement.style.setProperty('--ai-header-h', `${height}px`);
}
+ function syncVisualViewport() {
+ const vv = window.visualViewport;
+ const height = Math.round(vv?.height ?? window.innerHeight);
+ const offsetTop = Math.round(vv?.offsetTop ?? 0);
+ document.documentElement.style.setProperty('--ai-vv-height', `${height}px`);
+ document.documentElement.style.setProperty('--ai-vv-offset-top', `${offsetTop}px`);
+ }
+
watch(panel, (id) => {
document.body.classList.toggle('site-panel-routes', id === 'routes');
document.body.classList.toggle('site-panel-services', id === 'services');
@@ -349,7 +369,11 @@
document.body.classList.add('command-home');
window.addEventListener('keydown', onKeydown);
window.addEventListener('resize', syncHeaderOffset);
+ window.addEventListener('resize', syncVisualViewport);
+ window.visualViewport?.addEventListener('resize', syncVisualViewport);
+ window.visualViewport?.addEventListener('scroll', syncVisualViewport);
syncHeaderOffset();
+ syncVisualViewport();
const hash = (window.location.hash || '').replace('#', '');
if (hash === '9610' || hash === 'services') openPanel('services');
else if (NAV_PANELS.includes(hash as PanelId)) openPanel(hash as Exclude);
@@ -359,6 +383,9 @@
onBeforeUnmount(() => {
window.removeEventListener('keydown', onKeydown);
window.removeEventListener('resize', syncHeaderOffset);
+ window.removeEventListener('resize', syncVisualViewport);
+ window.visualViewport?.removeEventListener('resize', syncVisualViewport);
+ window.visualViewport?.removeEventListener('scroll', syncVisualViewport);
document.body.classList.remove('site-panel-routes', 'site-panel-services');
document.documentElement.classList.remove('command-home', 'app-boot-site');
closeMobileNav();
diff --git a/src/views/site/styles/ai-advisor.css b/src/views/site/styles/ai-advisor.css
index 6723d56..051c2a0 100644
--- a/src/views/site/styles/ai-advisor.css
+++ b/src/views/site/styles/ai-advisor.css
@@ -52,7 +52,7 @@
--ai-glass: var(--ai-surface);
--ai-content-max: 1200px;
--ai-guide-panel-w: 760px;
- --ai-routes-panel-w: 1080px;
+ --ai-routes-panel-w: 1280px;
--ai-acrylic-bg: rgba(255, 255, 255, 0.32);
--ai-acrylic-bg-primary: color-mix(in srgb, var(--ai-gold-soft) 42%, rgba(255, 255, 255, 0.38));
/* Soft fills ? cool tint aligned with GradientWaves */
@@ -169,6 +169,27 @@ body.command-home #navbar .site-nav-dock a {
}
@media (max-width: 1279px) {
+ /* 手机/平板抽屉:纵向列表,浅色底保证对比度 */
+ body.command-home #navbar,
+ body.command-home #navbar.navbar {
+ width: min(100%, 380px);
+ max-width: 100%;
+ }
+
+ body.command-home #navbar > ul {
+ display: flex;
+ flex-direction: column;
+ align-items: stretch;
+ gap: 4px;
+ padding: calc(56px + env(safe-area-inset-top, 0px)) 18px
+ calc(24px + env(safe-area-inset-bottom, 0px));
+ background: #f4f7fa !important;
+ background-image: linear-gradient(180deg, #f8fafc 0%, #eef3f7 100%) !important;
+ border-top-left-radius: 24px;
+ border-bottom-left-radius: 24px;
+ box-shadow: -12px 0 40px rgba(15, 23, 42, 0.18);
+ }
+
body.command-home .site-nav-dock {
display: contents;
}
@@ -176,22 +197,112 @@ body.command-home #navbar .site-nav-dock a {
body.command-home .site-nav-dock__glass,
body.command-home .site-nav-dock__slider,
body.command-home .site-nav-tools__glass {
- display: none;
+ display: none !important;
}
- body.command-home #navbar .site-nav-dock__item {
+ body.command-home #navbar > ul {
+ gap: 8px;
+ }
+
+ body.command-home #navbar .site-nav-dock__item,
+ body.command-home #navbar .site-nav-dock a,
+ body.command-home #navbar .site-nav-dock a:focus {
+ display: flex !important;
flex-direction: row;
- gap: 10px;
+ align-items: center;
+ justify-content: flex-start;
+ gap: 12px;
+ width: 100%;
+ min-height: 52px;
+ padding: 14px 16px !important;
+ border-radius: 14px;
+ color: var(--ai-text) !important;
+ font-size: 1.05rem;
+ font-weight: 700;
+ background: rgba(255, 255, 255, 0.72);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ body.command-home #navbar .site-nav-dock a:hover,
+ body.command-home #navbar .site-nav-dock a.active,
+ body.command-home #navbar .site-nav-dock a.active:focus,
+ body.command-home #navbar .site-nav-dock a.is-active,
+ body.command-home #navbar .site-nav-dock a.is-active:focus {
+ color: var(--ai-action) !important;
+ background: #fff;
}
body.command-home #navbar .site-nav-dock__icon {
- width: 20px;
- height: 20px;
+ width: 22px;
+ height: 22px;
+ flex-shrink: 0;
+ color: inherit;
}
body.command-home #navbar .site-nav-dock__label {
- font-size: 1rem;
- font-weight: 700;
+ font-size: inherit;
+ font-weight: inherit;
+ }
+
+ body.command-home #navbar > ul > li.site-nav-tools {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ width: 100%;
+ margin-top: 14px;
+ padding-top: 14px;
+ border-top: 1px solid rgba(18, 24, 32, 0.08);
+ }
+
+ body.command-home #navbar .site-nav-tools .site-nav-login,
+ body.command-home #navbar .site-nav-tools .site-nav-login:focus,
+ body.command-home #navbar .site-nav-tools .site-nav-login:hover,
+ body.command-home #navbar .site-nav-tools .site-nav-login:visited,
+ body.command-home #navbar .site-nav-tools .language-toggle-link,
+ body.command-home #navbar .site-nav-tools .language-toggle-link:focus,
+ body.command-home #navbar .site-nav-tools .language-toggle-link:hover,
+ body.command-home #navbar .site-nav-tools .language-toggle-link.active,
+ body.command-home #navbar .site-nav-tools .language-toggle-link.active:focus {
+ display: inline-flex !important;
+ justify-content: center;
+ width: 100%;
+ min-height: 46px;
+ padding: 0 16px !important;
+ border-radius: 14px;
+ background: #fff !important;
+ color: var(--ai-action) !important;
+ box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
+ }
+
+ body.command-home .mobile-nav-show,
+ body.command-home .mobile-nav-hide {
+ color: var(--ai-action);
+ }
+
+ body.command-home .mobile-nav-show,
+ body.command-home .mobile-nav-hide {
+ width: 44px;
+ height: 44px;
+ }
+
+ body.command-home .mobile-nav-hide {
+ color: var(--ai-text);
+ background: rgba(255, 255, 255, 0.92);
+ box-shadow: 0 4px 16px rgba(15, 23, 42, 0.12);
+ }
+
+ body.command-home.mobile-nav-active .mobile-nav-hide {
+ color: var(--ai-text);
+ }
+
+ /* 点遮罩关闭:伪元素承接点击,落到 #navbar 本身 */
+ body.command-home.mobile-nav-active #navbar {
+ cursor: pointer;
+ }
+
+ body.command-home.mobile-nav-active #navbar > ul {
+ cursor: default;
}
}
@@ -676,10 +787,11 @@ body.command-home #navbar a.language-toggle-link:hover .language-toggle-icon {
body.command-home #ai-advisor-shell {
display: block;
position: fixed;
- top: 0;
+ top: var(--ai-vv-offset-top, 0px);
left: 0;
right: 0;
- bottom: 0;
+ bottom: auto;
+ height: var(--ai-vv-height, 100%);
z-index: 10;
overflow: hidden;
}
@@ -1987,7 +2099,7 @@ body.command-home .ai-stage-map--eu {
flex-direction: column;
gap: 8px;
min-width: 0;
- min-height: 0;
+ height: 180px;
padding: 14px 16px;
border-radius: 16px;
border: none;
@@ -2009,7 +2121,7 @@ body.command-home .ai-stage-map--eu {
flex-direction: row;
flex-wrap: wrap;
align-items: baseline;
- gap: 0;
+ gap: 6px 8px;
}
.ai-route-card__group {
@@ -2021,13 +2133,6 @@ body.command-home .ai-stage-map--eu {
color: var(--ai-muted);
}
-.ai-route-card__group::after {
- content: '?';
- margin: 0 6px;
- font-weight: 500;
- color: color-mix(in srgb, var(--ai-muted) 55%, transparent);
-}
-
.ai-route-card__name {
margin: 0;
min-width: 0;
@@ -2086,32 +2191,14 @@ body.command-home .ai-stage-map--eu {
}
.ai-route-card__desc {
+ flex: 1;
+ min-height: 0;
margin: 0;
font-size: 0.8rem;
line-height: 1.45;
color: var(--ai-text-3);
- display: -webkit-box;
- -webkit-line-clamp: 2;
- -webkit-box-orient: vertical;
- overflow: hidden;
-}
-
-.ai-route-card__desc.is-expanded {
- display: block;
- -webkit-line-clamp: unset;
- overflow: visible;
-}
-
-.ai-route-card__more {
- align-self: flex-start;
- margin: 0;
- padding: 0;
- border: 0;
- background: none;
- color: var(--ai-action);
- font-size: 0.76rem;
- font-weight: 650;
- cursor: pointer;
+ overflow-y: auto;
+ scrollbar-width: thin;
}
.ai-route-card__actions {
@@ -4310,8 +4397,19 @@ body.command-home #navbar .site-nav-avatar:hover {
}
@media (max-width: 640px) {
+ :root {
+ --ai-header-h: 64px;
+ }
+
+ body.command-home #header {
+ padding-top: env(safe-area-inset-top, 0px);
+ }
+
.ai-advisor-layout {
- padding: calc(var(--ai-header-h) + 6px) 14px 0;
+ padding: calc(var(--ai-header-h) + env(safe-area-inset-top, 0px) + 4px)
+ max(14px, env(safe-area-inset-left, 0px))
+ 0
+ max(14px, env(safe-area-inset-right, 0px));
}
.ai-routes-panel {
@@ -4364,27 +4462,136 @@ body.command-home #navbar .site-nav-avatar:hover {
}
.ai-welcome__stack {
- margin-top: 4px;
+ margin-top: 2px;
+ }
+
+ .ai-welcome-stats--compact {
+ width: 100%;
+ justify-content: space-between;
+ gap: 10px;
+ }
+
+ .ai-welcome-stats--compact .ai-welcome-stats__item {
+ flex: 1 1 0;
+ min-width: 0;
}
.ai-welcome-stats--compact .ai-welcome-stats__item:nth-child(n + 3) {
display: none;
}
+ .ai-welcome-stats__value {
+ font-size: clamp(1.35rem, 6vw, 1.7rem);
+ }
+
+ .ai-welcome-stats__label {
+ font-size: 0.72rem;
+ line-height: 1.3;
+ }
+
.ai-intent-grid--primary {
grid-template-columns: 1fr;
+ gap: 10px;
}
.ai-intent-grid--primary .ai-intent-door:last-child {
grid-column: auto;
}
- .ai-partner-marquee {
- min-width: 0;
+ /* 权益:横向滑动,首屏露出首卡 + 右缘提示 */
+ .ai-intent-grid--growth {
+ display: flex;
+ gap: 10px;
+ overflow-x: auto;
+ overflow-y: hidden;
+ padding: 0 2px 8px;
+ scroll-snap-type: x proximity;
+ -webkit-overflow-scrolling: touch;
+ scrollbar-width: none;
+ touch-action: pan-x;
+ mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 28px), transparent 100%);
+ -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 28px), transparent 100%);
}
- .ai-partner-marquee__viewport {
- flex: 0 1 auto;
+ .ai-intent-grid--growth::-webkit-scrollbar {
+ display: none;
+ }
+
+ .ai-intent-grid--growth .ai-intent-door {
+ flex: 0 0 min(72vw, 240px);
+ width: auto;
+ scroll-snap-align: start;
+ }
+
+ .ai-welcome__command .ai-intent-door,
+ .ai-welcome__command .ai-intent-door.is-primary {
+ min-height: 52px;
+ padding: 9px 12px 9px 10px;
+ gap: 10px;
+ }
+
+ .ai-intent-grid--primary {
+ gap: 8px;
+ }
+
+ .ai-welcome__command .ai-intent-door__icon {
+ width: 36px;
+ height: 36px;
+ }
+
+ .ai-welcome__command .ai-intent-door__title,
+ .ai-welcome__command .ai-intent-door.is-primary .ai-intent-door__title {
+ font-size: 0.98rem;
+ }
+
+ .ai-welcome__command .ai-intent-door__hint,
+ .ai-welcome__command .ai-intent-door.is-primary .ai-intent-door__hint {
+ font-size: 0.85rem;
+ line-height: 1.35;
+ -webkit-line-clamp: 3;
+ line-clamp: 3;
+ }
+
+ .ai-partner-marquee {
+ min-width: 0;
+ gap: 6px;
+ }
+
+ .ai-partner-marquee__viewport,
+ .ai-partner-marquee__viewport.is-static {
+ flex: 1 1 auto;
+ width: 100%;
+ max-width: 100%;
+ overflow-x: auto;
+ overflow-y: hidden;
+ -webkit-overflow-scrolling: touch;
+ scrollbar-width: none;
+ touch-action: pan-x;
+ mask-image: linear-gradient(90deg, transparent, #000 18px, #000 calc(100% - 18px), transparent);
+ -webkit-mask-image: linear-gradient(90deg, transparent, #000 18px, #000 calc(100% - 18px), transparent);
+ }
+
+ .ai-partner-marquee__viewport::-webkit-scrollbar,
+ .ai-partner-marquee__viewport.is-static::-webkit-scrollbar {
+ display: none;
+ }
+
+ .ai-partner-marquee__viewport.is-static .ai-partner-marquee__track {
+ justify-content: flex-start;
+ width: max-content;
+ }
+
+ .ai-partner-marquee__viewport.is-static .ai-partner-marquee__strip {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ gap: 8px;
+ }
+
+ .ai-trust-bar {
+ --ai-trust-bar-h: 76px;
+ gap: 8px 14px;
+ padding-top: 8px;
+ padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
}
.ai-trust-icp {
@@ -4392,33 +4599,125 @@ body.command-home #navbar .site-nav-avatar:hover {
font-size: 0.66rem;
}
+ /* 首页可滚:底部淡出提示还有内容(对话页不套 mask) */
+ .ai-app-main:has(.ai-welcome) {
+ -webkit-mask-image: linear-gradient(
+ to bottom,
+ #000 0%,
+ #000 calc(100% - 22px),
+ transparent 100%
+ );
+ mask-image: linear-gradient(
+ to bottom,
+ #000 0%,
+ #000 calc(100% - 22px),
+ transparent 100%
+ );
+ }
+
+ .ai-welcome__meta {
+ margin-top: 10px;
+ padding-top: 10px;
+ }
+
.ai-welcome__deck {
- padding: 14px 8px 12px;
+ padding: 8px 4px 6px;
}
.ai-welcome__command {
- padding: 0 0 4px;
+ gap: 14px;
+ padding: 0 0 calc(12px + env(safe-area-inset-bottom, 0px));
+ }
+
+ .ai-intent-section {
+ gap: 10px;
+ }
+
+ .ai-intent-group__label {
+ margin-bottom: 6px;
+ font-size: 0.8rem;
+ letter-spacing: 0.04em;
+ color: var(--ai-text-2);
+ }
+
+ .ai-welcome__command .ai-intent-door__hint,
+ .ai-welcome__command .ai-intent-door.is-primary .ai-intent-door__hint {
+ -webkit-line-clamp: 2;
+ line-clamp: 2;
}
.ai-welcome-title {
- font-size: clamp(1.25rem, 5vw, 1.75rem);
+ white-space: normal;
+ font-size: clamp(1.45rem, 6.2vw, 1.85rem);
+ line-height: 1.28;
}
- .ai-welcome-sub {
- font-size: 0.84rem;
- white-space: nowrap;
+ .ai-welcome-compose-panel {
+ padding: 12px 12px 10px;
+ border-radius: 22px;
+ }
+
+ .ai-welcome-compose-panel .ai-welcome-cta-link {
+ position: static;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+ min-height: 44px;
+ margin: 0 0 10px;
+ padding: 0 14px;
+ border-radius: 999px;
+ background: color-mix(in srgb, var(--ai-action) 12%, #fff);
+ color: var(--ai-action);
+ font-size: 0.95rem;
+ font-weight: 700;
+ text-decoration: none;
+ }
+
+ .ai-welcome-compose-panel .ai-welcome-cta-link:hover,
+ .ai-welcome-compose-panel .ai-welcome-cta-link:focus {
+ background: color-mix(in srgb, var(--ai-action) 18%, #fff);
+ text-decoration: none;
+ }
+
+ .ai-welcome-compose-panel .ai-welcome-compose__lead {
+ padding-right: 0;
+ padding-top: 0;
+ margin-bottom: 10px;
+ font-size: 0.92rem;
+ line-height: 1.45;
+ }
+
+ .ai-home-dests {
+ display: flex;
+ flex-wrap: nowrap;
+ gap: 8px;
+ margin-bottom: 10px;
overflow-x: auto;
- max-width: 94vw;
- -webkit-overflow-scrolling: touch;
+ padding-bottom: 2px;
scrollbar-width: none;
+ -webkit-overflow-scrolling: touch;
+ touch-action: pan-x;
+ mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 20px), transparent 100%);
+ -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 20px), transparent 100%);
}
- .ai-welcome-sub::-webkit-scrollbar {
+ .ai-home-dests::-webkit-scrollbar {
display: none;
}
- .ai-trust-bar {
- gap: 8px 14px;
+ .ai-home-dest {
+ flex: 0 0 auto;
+ min-height: 40px;
+ padding: 0 14px;
+ font-size: 0.88rem;
+ }
+
+ .ai-welcome-sub {
+ font-size: 0.88rem;
+ white-space: normal;
+ overflow: visible;
+ max-width: 100%;
}
.ai-new-chat-tip {
@@ -4428,20 +4727,25 @@ body.command-home #navbar .site-nav-avatar:hover {
border-radius: 14px;
}
- .ai-composer {
- min-height: 76px;
- padding: 12px 12px 12px 18px;
- border-radius: 26px;
+ .ai-composer,
+ .ai-composer-slot--welcome .ai-composer {
+ min-height: 56px;
+ padding: 10px 10px 10px 16px;
+ border-radius: 22px;
}
.ai-composer-input {
- min-height: 48px;
- font-size: 1rem;
+ min-height: 44px;
+ font-size: 16px; /* iOS 避免自动放大 */
}
.ai-composer-send {
- width: 46px;
- height: 46px;
+ width: 44px;
+ height: 44px;
+ }
+
+ .ai-composer-dock {
+ padding-bottom: max(10px, env(safe-area-inset-bottom, 0px));
}
}
diff --git a/src/views/site/styles/main.css b/src/views/site/styles/main.css
index e730b44..a59ef89 100644
--- a/src/views/site/styles/main.css
+++ b/src/views/site/styles/main.css
@@ -184,24 +184,37 @@ body.command-home {
color: #fff;
}
+ .mobile-nav-toggle {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 42px;
+ height: 42px;
+ padding: 0;
+ border: none;
+ border-radius: 12px;
+ background: transparent;
+ cursor: pointer;
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ .mobile-nav-toggle .si {
+ font-size: 26px;
+ line-height: 1;
+ }
+
.mobile-nav-show {
z-index: 9999;
- margin-right: 10px;
+ margin-right: 2px;
color: #fff;
- font-size: 28px;
- line-height: 0;
- cursor: pointer;
}
.mobile-nav-hide {
position: fixed;
- top: 20px;
- right: 20px;
+ top: max(16px, env(safe-area-inset-top, 0px));
+ right: max(14px, env(safe-area-inset-right, 0px));
z-index: 9999;
color: #fff;
- font-size: 32px;
- line-height: 0;
- cursor: pointer;
}
.mobile-nav-active {
diff --git a/src/views/system/permission/menu/index.vue b/src/views/system/permission/menu/index.vue
index 9c23edf..adbe0cf 100644
--- a/src/views/system/permission/menu/index.vue
+++ b/src/views/system/permission/menu/index.vue
@@ -474,6 +474,7 @@ function handleSyncMenu(record: MenuTreeDto) {
const result = await syncMenuTree(record)
const hasChanges =
result.level2Created > 0 ||
+ result.level2Updated > 0 ||
result.level3Created > 0 ||
result.level3Updated > 0 ||
result.level3Deleted > 0
@@ -483,6 +484,7 @@ function handleSyncMenu(record: MenuTreeDto) {
Message.success(
t('system.menu.message.syncModuleSuccess', {
level2Created: result.level2Created,
+ level2Updated: result.level2Updated,
level2Skipped: result.level2Skipped,
level3Created: result.level3Created,
level3Updated: result.level3Updated,