From d20bc71efeafa8326fc602857a13eeecd78c948a Mon Sep 17 00:00:00 2001 From: shishengliang Date: Wed, 23 Sep 2026 16:02:50 +0800 Subject: [PATCH] ui(assets): move AI assistant to the bottom feedback position --- src/components/Shell.tsx | 2 +- src/modules/assets/AssetsModule.tsx | 15 +++++++++++++-- src/modules/assets/components/AssetsHeader.tsx | 11 +---------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/components/Shell.tsx b/src/components/Shell.tsx index fde3a0c..7777ad9 100644 --- a/src/components/Shell.tsx +++ b/src/components/Shell.tsx @@ -165,7 +165,7 @@ export function Shell({ modules }: { modules: ModuleConfig[] }) { }> {ActiveComponent && } - + {activeModule !== 'assets' && } {/* 移动端底部导航 (md 以下) */} diff --git a/src/modules/assets/AssetsModule.tsx b/src/modules/assets/AssetsModule.tsx index fc3a8c7..83b8c70 100644 --- a/src/modules/assets/AssetsModule.tsx +++ b/src/modules/assets/AssetsModule.tsx @@ -1,6 +1,7 @@ import React, { lazy, Suspense, useState, useEffect, useCallback, useMemo, useRef } from 'react'; import { Truck, + Sparkles, ChevronDown, ChevronRight, Loader2, @@ -483,8 +484,6 @@ export default function AssetsModule() { return (
setAssistantOpen(true)} activeTab={activeTab} setActiveTab={setActiveTab} theme={theme} @@ -1708,6 +1707,18 @@ export default function AssetsModule() {
+ {assistantOpen && 正在打开 AI 问数…}> { setAssistantOpen(false); requestAnimationFrame(() => assistantTrigger.current?.focus()); }} />} ); diff --git a/src/modules/assets/components/AssetsHeader.tsx b/src/modules/assets/components/AssetsHeader.tsx index 50eef42..9b690ca 100644 --- a/src/modules/assets/components/AssetsHeader.tsx +++ b/src/modules/assets/components/AssetsHeader.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { ChevronDown, Filter, Loader2, Search, Sparkles } from 'lucide-react'; +import { ChevronDown, Filter, Loader2, Search } from 'lucide-react'; import { motion } from 'motion/react'; import type { SubjectOption } from '../api'; @@ -7,8 +7,6 @@ export type AssetsTab = 'overview' | 'department' | 'region' | 'customer'; export type AssetsTheme = 'soft' | 'minimal' | 'vibrant'; interface AssetsHeaderProps { - onOpenAssistant: () => void; - assistantTrigger: React.RefObject; activeTab: AssetsTab; setActiveTab: React.Dispatch>; theme: AssetsTheme; @@ -33,8 +31,6 @@ const TABS = [ ]; export function AssetsHeader({ - onOpenAssistant, - assistantTrigger, activeTab, setActiveTab, theme, @@ -81,11 +77,6 @@ export function AssetsHeader({ -
- -
{/* 归属公司作用域筛选 (Scope Chip) */}