pref: 移除 useColorModeValue
UI调整
This commit is contained in:
@@ -38,6 +38,8 @@ const SearchBar = ({
|
|||||||
onChange={(e) => onInputChange(e.target.value)}
|
onChange={(e) => onInputChange(e.target.value)}
|
||||||
onKeyPress={onKeyPress}
|
onKeyPress={onKeyPress}
|
||||||
borderRadius="md"
|
borderRadius="md"
|
||||||
|
color="white"
|
||||||
|
_placeholder={{ color: 'whiteAlpha.600' }}
|
||||||
_focus={{
|
_focus={{
|
||||||
borderColor: 'blue.500',
|
borderColor: 'blue.500',
|
||||||
boxShadow: '0 0 0 1px #3182ce',
|
boxShadow: '0 0 0 1px #3182ce',
|
||||||
@@ -45,10 +47,14 @@ const SearchBar = ({
|
|||||||
/>
|
/>
|
||||||
</InputGroup>
|
</InputGroup>
|
||||||
<Button
|
<Button
|
||||||
colorScheme="blue"
|
|
||||||
size="lg"
|
size="lg"
|
||||||
onClick={onSearch}
|
onClick={onSearch}
|
||||||
leftIcon={<SearchIcon />}
|
leftIcon={<SearchIcon />}
|
||||||
|
bg="#1A202C"
|
||||||
|
color="#C9A961"
|
||||||
|
borderWidth="1px"
|
||||||
|
borderColor="#C9A961"
|
||||||
|
_hover={{ bg: '#1a1a1a' }}
|
||||||
>
|
>
|
||||||
查询
|
查询
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -52,8 +52,8 @@ const CompanyHeader = ({
|
|||||||
<HStack justify="space-between" align="center">
|
<HStack justify="space-between" align="center">
|
||||||
{/* 标题区域 */}
|
{/* 标题区域 */}
|
||||||
<VStack align="start" spacing={1}>
|
<VStack align="start" spacing={1}>
|
||||||
<Heading size="lg">个股详情</Heading>
|
<Heading size="lg" color="white">个股详情</Heading>
|
||||||
<Text color="gray.600" fontSize="sm">
|
<Text color="white" fontSize="sm">
|
||||||
查看股票实时行情、财务数据和盈利预测
|
查看股票实时行情、财务数据和盈利预测
|
||||||
</Text>
|
</Text>
|
||||||
</VStack>
|
</VStack>
|
||||||
@@ -76,16 +76,6 @@ const CompanyHeader = ({
|
|||||||
/>
|
/>
|
||||||
</HStack>
|
</HStack>
|
||||||
</HStack>
|
</HStack>
|
||||||
|
|
||||||
{/* 当前股票信息 */}
|
|
||||||
<HStack mt={4} spacing={4}>
|
|
||||||
<Badge colorScheme="blue" fontSize="md" px={3} py={1}>
|
|
||||||
股票代码: {stockCode}
|
|
||||||
</Badge>
|
|
||||||
<Text fontSize="sm" color="gray.600">
|
|
||||||
更新时间: {new Date().toLocaleString()}
|
|
||||||
</Text>
|
|
||||||
</HStack>
|
|
||||||
</CardBody>
|
</CardBody>
|
||||||
</Card>
|
</Card>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// src/views/Company/components/CompanyTabs/TabNavigation.js
|
// src/views/Company/components/CompanyTabs/TabNavigation.js
|
||||||
// Tab 导航组件 - 动态渲染 Tab 按钮
|
// Tab 导航组件 - 动态渲染 Tab 按钮(黑金主题)
|
||||||
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {
|
import {
|
||||||
@@ -10,31 +10,41 @@ import {
|
|||||||
Text,
|
Text,
|
||||||
} from '@chakra-ui/react';
|
} from '@chakra-ui/react';
|
||||||
|
|
||||||
import { COMPANY_TABS, TAB_SELECTED_STYLE } from '../../constants';
|
import { COMPANY_TABS } from '../../constants';
|
||||||
|
|
||||||
|
// 黑金主题颜色配置
|
||||||
|
const THEME_COLORS = {
|
||||||
|
bg: '#1A202C', // 背景纯黑
|
||||||
|
selectedBg: '#C9A961', // 选中项金色背景
|
||||||
|
selectedText: '#FFFFFF', // 选中项白色文字
|
||||||
|
unselectedText: '#999999', // 未选中项深灰色
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tab 导航组件
|
* Tab 导航组件(黑金主题)
|
||||||
*
|
|
||||||
* @param {Object} props
|
|
||||||
* @param {string} props.tabBg - Tab 列表背景色
|
|
||||||
* @param {string} props.activeBg - 激活状态背景色
|
|
||||||
*/
|
*/
|
||||||
const TabNavigation = ({ tabBg, activeBg }) => {
|
const TabNavigation = () => {
|
||||||
return (
|
return (
|
||||||
<TabList p={4} bg={tabBg}>
|
<TabList py={4} bg={THEME_COLORS.bg} borderTopLeftRadius="16px" borderTopRightRadius="16px">
|
||||||
{COMPANY_TABS.map((tab, index) => (
|
{COMPANY_TABS.map((tab, index) => (
|
||||||
<Tab
|
<Tab
|
||||||
key={tab.key}
|
key={tab.key}
|
||||||
|
color={THEME_COLORS.unselectedText}
|
||||||
|
borderRadius="full"
|
||||||
|
px={4}
|
||||||
|
py={2}
|
||||||
_selected={{
|
_selected={{
|
||||||
bg: activeBg,
|
bg: THEME_COLORS.selectedBg,
|
||||||
color: 'white',
|
color: THEME_COLORS.selectedText,
|
||||||
...TAB_SELECTED_STYLE,
|
}}
|
||||||
|
_hover={{
|
||||||
|
color: THEME_COLORS.selectedText,
|
||||||
}}
|
}}
|
||||||
mr={index < COMPANY_TABS.length - 1 ? 2 : 0}
|
mr={index < COMPANY_TABS.length - 1 ? 2 : 0}
|
||||||
>
|
>
|
||||||
<HStack spacing={2}>
|
<HStack spacing={2}>
|
||||||
<Icon as={tab.icon} />
|
<Icon as={tab.icon} boxSize="18px" />
|
||||||
<Text>{tab.name}</Text>
|
<Text fontSize="15px">{tab.name}</Text>
|
||||||
</HStack>
|
</HStack>
|
||||||
</Tab>
|
</Tab>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -46,9 +46,8 @@ const TAB_COMPONENTS = {
|
|||||||
* @param {Object} props
|
* @param {Object} props
|
||||||
* @param {string} props.stockCode - 当前股票代码
|
* @param {string} props.stockCode - 当前股票代码
|
||||||
* @param {Function} props.onTabChange - Tab 变更回调 (index, tabName, prevIndex) => void
|
* @param {Function} props.onTabChange - Tab 变更回调 (index, tabName, prevIndex) => void
|
||||||
* @param {string} props.bgColor - 背景颜色
|
|
||||||
*/
|
*/
|
||||||
const CompanyTabs = ({ stockCode, onTabChange, bgColor }) => {
|
const CompanyTabs = ({ stockCode, onTabChange }) => {
|
||||||
const [currentIndex, setCurrentIndex] = useState(0);
|
const [currentIndex, setCurrentIndex] = useState(0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -65,7 +64,7 @@ const CompanyTabs = ({ stockCode, onTabChange, bgColor }) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card bg={bgColor} shadow="lg">
|
<Card shadow="lg" bg='#1A202C'>
|
||||||
<CardBody p={0}>
|
<CardBody p={0}>
|
||||||
<Tabs
|
<Tabs
|
||||||
variant="soft-rounded"
|
variant="soft-rounded"
|
||||||
@@ -74,8 +73,8 @@ const CompanyTabs = ({ stockCode, onTabChange, bgColor }) => {
|
|||||||
index={currentIndex}
|
index={currentIndex}
|
||||||
onChange={handleTabChange}
|
onChange={handleTabChange}
|
||||||
>
|
>
|
||||||
{/* Tab 导航 */}
|
{/* Tab 导航(黑金主题) */}
|
||||||
<TabNavigation tabBg="gray.50" activeBg="blue.500" />
|
<TabNavigation />
|
||||||
|
|
||||||
<Divider />
|
<Divider />
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ const StockQuoteCard: React.FC<StockQuoteCardProps> = ({
|
|||||||
isLoading = false,
|
isLoading = false,
|
||||||
}) => {
|
}) => {
|
||||||
// 黑金主题颜色配置
|
// 黑金主题颜色配置
|
||||||
const cardBg = '#000000';
|
const cardBg = '#1A202C';
|
||||||
const borderColor = '#C9A961';
|
const borderColor = '#C9A961';
|
||||||
const labelColor = '#C9A961';
|
const labelColor = '#C9A961';
|
||||||
const valueColor = '#F4D03F';
|
const valueColor = '#F4D03F';
|
||||||
@@ -76,9 +76,9 @@ const StockQuoteCard: React.FC<StockQuoteCardProps> = ({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Card bg={cardBg} shadow="sm" borderWidth="1px" borderColor={borderColor}>
|
<Card bg={cardBg} shadow="sm" borderWidth="1px" borderColor={borderColor}>
|
||||||
<CardBody py={4} px={6}>
|
<CardBody>
|
||||||
{/* 顶部:股票名称 + 更新时间 */}
|
{/* 顶部:股票名称 + 更新时间 */}
|
||||||
<Flex justify="space-between" align="center" mb={4}>
|
<Flex justify="space-between" align="center">
|
||||||
<HStack spacing={3}>
|
<HStack spacing={3}>
|
||||||
<Text fontSize="24px" fontWeight="bold" color={valueColor}>
|
<Text fontSize="24px" fontWeight="bold" color={valueColor}>
|
||||||
{data.name}
|
{data.name}
|
||||||
|
|||||||
@@ -64,8 +64,8 @@ const CompanyIndex = () => {
|
|||||||
}, [stockCode, trackStockSearched]);
|
}, [stockCode, trackStockSearched]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container maxW="container.xl" py={5}>
|
<Container maxW="container.xl" py={0} bg='#1A202C'>
|
||||||
<VStack align="stretch" spacing={5}>
|
<VStack align="stretch" spacing={0}>
|
||||||
{/* 页面头部:标题、搜索、自选股按钮 */}
|
{/* 页面头部:标题、搜索、自选股按钮 */}
|
||||||
<CompanyHeader
|
<CompanyHeader
|
||||||
stockCode={stockCode}
|
stockCode={stockCode}
|
||||||
@@ -76,18 +76,14 @@ const CompanyIndex = () => {
|
|||||||
isInWatchlist={isInWatchlist}
|
isInWatchlist={isInWatchlist}
|
||||||
isWatchlistLoading={isWatchlistLoading}
|
isWatchlistLoading={isWatchlistLoading}
|
||||||
onWatchlistToggle={handleWatchlistToggle}
|
onWatchlistToggle={handleWatchlistToggle}
|
||||||
bgColor="white"
|
bgColor="#1A202C"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{/* 股票行情卡片:价格、关键指标、主力动态 */}
|
{/* 股票行情卡片:价格、关键指标、主力动态 */}
|
||||||
<StockQuoteCard />
|
<StockQuoteCard />
|
||||||
|
|
||||||
{/* Tab 切换区域:概览、行情、财务、预测 */}
|
{/* Tab 切换区域:概览、行情、财务、预测 */}
|
||||||
<CompanyTabs
|
<CompanyTabs stockCode={stockCode} onTabChange={trackTabChanged} bgColor="#1A202C"/>
|
||||||
stockCode={stockCode}
|
|
||||||
onTabChange={trackTabChanged}
|
|
||||||
bgColor="white"
|
|
||||||
/>
|
|
||||||
</VStack>
|
</VStack>
|
||||||
</Container>
|
</Container>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user