feat: 新增每日进销存(大货库存监控)

This commit is contained in:
youruo 2026-09-23 17:41:03 +08:00
parent eaa8489600
commit e4b6bbcf31

View File

@ -1,154 +1,159 @@
import React, { lazy, Suspense } from 'react'; import React, { lazy, Suspense } from 'react';
import { createBrowserRouter, Navigate } from 'react-router-dom'; import { createBrowserRouter, Navigate } from 'react-router-dom';
import BasicLayout from '../layouts/BasicLayout'; import BasicLayout from '../layouts/BasicLayout';
import { AuthPageLoadingFallback, PageLoadingFallback } from '../components/AppLoadingSkeleton'; import { AuthPageLoadingFallback, PageLoadingFallback } from '../components/AppLoadingSkeleton';
const Login = lazy(() => import('../pages/Login')); const Login = lazy(() => import('../pages/Login'));
const Install = lazy(() => import('../pages/Install')); const Install = lazy(() => import('../pages/Install'));
const Setup = lazy(() => import('../pages/Setup')); const Setup = lazy(() => import('../pages/Setup'));
const Settings = lazy(() => import('../pages/Settings')); const Settings = lazy(() => import('../pages/Settings'));
const OnlineDesktopUsers = lazy(() => import('../pages/OnlineDesktopUsers')); const OnlineDesktopUsers = lazy(() => import('../pages/OnlineDesktopUsers'));
const DesktopExecutionTasks = lazy(() => import('../pages/DesktopExecutionTasks')); const DesktopExecutionTasks = lazy(() => import('../pages/DesktopExecutionTasks'));
const MarketingEvents = lazy(() => import('../pages/MarketingEvents')); const MarketingEvents = lazy(() => import('../pages/MarketingEvents'));
const ProductInformation = lazy(() => import('../pages/ProductInformation')); const ProductInformation = lazy(() => import('../pages/ProductInformation'));
const PromotionModule = lazy(() => import('../pages/PromotionModule')); const PromotionModule = lazy(() => import('../pages/PromotionModule'));
const OperationPlaceholder = lazy(() => import('../pages/OperationPlaceholder')); const OperationPlaceholder = lazy(() => import('../pages/OperationPlaceholder'));
const DevelopmentStylePreview = lazy(() => import('../pages/DevelopmentStylePreview')); const DevelopmentStylePreview = lazy(() => import('../pages/DevelopmentStylePreview'));
const ProductAnalysis = lazy(() => import('../pages/ProductAnalysis')); const ProductAnalysis = lazy(() => import('../pages/ProductAnalysis'));
const OpsBIncentiveBoard = lazy(() => import('../pages/PlanningUpload/OpsBIncentiveBoard')); const OpsBIncentiveBoard = lazy(() => import('../pages/PlanningUpload/OpsBIncentiveBoard'));
const ProductMonitoring = lazy(() => import('../pages/ProductMonitoring')); const ProductMonitoring = lazy(() => import('../pages/ProductMonitoring'));
const ModularStockMonitor = lazy(() => import('../pages/ModularStockMonitor')); const ModularStockMonitor = lazy(() => import('../pages/ModularStockMonitor'));
const MkhBomData = lazy(() => import('../pages/MkhBomData')); const MkhBomData = lazy(() => import('../pages/MkhBomData'));
const DailyInventory = lazy(() => import('../pages/DailyInventory'));
const lazyLoadingElement = <PageLoadingFallback />;
const lazyLoadingElement = <PageLoadingFallback />;
const renderLazyComponent = (lazyView, props = {}, fallback = lazyLoadingElement) => {
const LazyView = lazyView; const renderLazyComponent = (lazyView, props = {}, fallback = lazyLoadingElement) => {
const LazyView = lazyView;
return (
<Suspense fallback={fallback}> return (
<LazyView {...props} /> <Suspense fallback={fallback}>
</Suspense> <LazyView {...props} />
); </Suspense>
}; );
};
const HOME_URL = '/planning/dev-style-preview';
const HOME_URL = '/planning/dev-style-preview';
const router = createBrowserRouter([
{ const router = createBrowserRouter([
path: '/login', {
element: renderLazyComponent(Login, {}, <AuthPageLoadingFallback />), path: '/login',
}, element: renderLazyComponent(Login, {}, <AuthPageLoadingFallback />),
{ },
path: '/callback', {
element: renderLazyComponent(Login, {}, <AuthPageLoadingFallback />), path: '/callback',
}, element: renderLazyComponent(Login, {}, <AuthPageLoadingFallback />),
{ },
path: '/setup', {
element: renderLazyComponent(Setup), path: '/setup',
}, element: renderLazyComponent(Setup),
{ },
path: '/install', {
element: renderLazyComponent(Install), path: '/install',
}, element: renderLazyComponent(Install),
{ },
path: '/', {
element: <BasicLayout />, path: '/',
children: [ element: <BasicLayout />,
{ children: [
index: true, {
element: <Navigate to={HOME_URL} replace />, index: true,
}, element: <Navigate to={HOME_URL} replace />,
{ },
path: 'dashboard', {
element: <Navigate to={HOME_URL} replace />, path: 'dashboard',
}, element: <Navigate to={HOME_URL} replace />,
{ },
path: 'channel', {
element: <Navigate to={HOME_URL} replace />, path: 'channel',
}, element: <Navigate to={HOME_URL} replace />,
{ },
path: 'planning', {
element: <Navigate to={HOME_URL} replace />, path: 'planning',
}, element: <Navigate to={HOME_URL} replace />,
{ },
path: 'planning/operation/marketing-events', {
element: <Navigate to="/planning/operation/marketing-events/activity-products" replace />, path: 'planning/operation/marketing-events',
}, element: <Navigate to="/planning/operation/marketing-events/activity-products" replace />,
{ },
path: 'planning/operation/marketing-events/activity-products', {
element: renderLazyComponent(MarketingEvents), path: 'planning/operation/marketing-events/activity-products',
}, element: renderLazyComponent(MarketingEvents),
{ },
path: 'planning/operation/marketing-tools', {
element: <Navigate to="/planning/operation/marketing-events" replace />, path: 'planning/operation/marketing-tools',
}, element: <Navigate to="/planning/operation/marketing-events" replace />,
{ },
path: 'planning/operation/product-information', {
element: renderLazyComponent(ProductInformation), path: 'planning/operation/product-information',
}, element: renderLazyComponent(ProductInformation),
{ },
path: 'planning/operation/product-analysis', {
element: renderLazyComponent(ProductAnalysis), path: 'planning/operation/product-analysis',
}, element: renderLazyComponent(ProductAnalysis),
{ },
path: 'planning/operation/promotion-module', {
element: renderLazyComponent(PromotionModule), path: 'planning/operation/promotion-module',
}, element: renderLazyComponent(PromotionModule),
{ },
path: 'planning/operation/ops-b-incentive', {
element: renderLazyComponent(OpsBIncentiveBoard), path: 'planning/operation/ops-b-incentive',
}, element: renderLazyComponent(OpsBIncentiveBoard),
{ },
path: 'planning/operation/product-monitoring', {
element: renderLazyComponent(ProductMonitoring), path: 'planning/operation/product-monitoring',
}, element: renderLazyComponent(ProductMonitoring),
{ },
path: 'planning/operation/modular-stock-monitor', {
element: renderLazyComponent(ModularStockMonitor), path: 'planning/operation/modular-stock-monitor',
}, element: renderLazyComponent(ModularStockMonitor),
{ },
path: 'planning/operation/mkh-bom-data', {
element: renderLazyComponent(MkhBomData), path: 'planning/operation/mkh-bom-data',
}, element: renderLazyComponent(MkhBomData),
{ path: 'planning/operation/store-checkup', element: <Navigate to={HOME_URL} replace /> }, },
{ path: 'planning/operation/review-analysis', element: <Navigate to={HOME_URL} replace /> }, {
{ path: 'planning/operation/customer-service-checkup', element: <Navigate to={HOME_URL} replace /> }, path: 'planning/operation/daily-inventory',
{ path: 'planning/operation/pricing-calculator', element: <Navigate to={HOME_URL} replace /> }, element: renderLazyComponent(DailyInventory),
{ path: 'planning/operation/desktop-client-download', element: <Navigate to={HOME_URL} replace /> }, },
{ path: 'planning/operation/ai-buyer-show', element: <Navigate to={HOME_URL} replace /> }, { path: 'planning/operation/store-checkup', element: <Navigate to={HOME_URL} replace /> },
{ path: 'planning/operation/ai-seeding-video', element: <Navigate to={HOME_URL} replace /> }, { path: 'planning/operation/review-analysis', element: <Navigate to={HOME_URL} replace /> },
{ path: 'settings/desktop-client-releases', element: <Navigate to={HOME_URL} replace /> }, { path: 'planning/operation/customer-service-checkup', element: <Navigate to={HOME_URL} replace /> },
{ { path: 'planning/operation/pricing-calculator', element: <Navigate to={HOME_URL} replace /> },
path: 'planning/operation/:featureKey', { path: 'planning/operation/desktop-client-download', element: <Navigate to={HOME_URL} replace /> },
element: renderLazyComponent(OperationPlaceholder), { path: 'planning/operation/ai-buyer-show', element: <Navigate to={HOME_URL} replace /> },
}, { path: 'planning/operation/ai-seeding-video', element: <Navigate to={HOME_URL} replace /> },
{ { path: 'settings/desktop-client-releases', element: <Navigate to={HOME_URL} replace /> },
path: 'planning/upload', {
element: <Navigate to={HOME_URL} replace />, path: 'planning/operation/:featureKey',
}, element: renderLazyComponent(OperationPlaceholder),
{ },
path: 'planning/dev-style-preview', {
element: renderLazyComponent(DevelopmentStylePreview), path: 'planning/upload',
}, element: <Navigate to={HOME_URL} replace />,
{ },
path: 'settings', {
element: renderLazyComponent(Settings), path: 'planning/dev-style-preview',
}, element: renderLazyComponent(DevelopmentStylePreview),
{ },
path: 'settings/online-desktop-users', {
element: renderLazyComponent(OnlineDesktopUsers), path: 'settings',
}, element: renderLazyComponent(Settings),
{ },
path: 'settings/desktop-execution-tasks', {
element: renderLazyComponent(DesktopExecutionTasks), path: 'settings/online-desktop-users',
}, element: renderLazyComponent(OnlineDesktopUsers),
{ },
path: '*', {
element: <Navigate to={HOME_URL} replace />, path: 'settings/desktop-execution-tasks',
}, element: renderLazyComponent(DesktopExecutionTasks),
], },
}, {
]); path: '*',
element: <Navigate to={HOME_URL} replace />,
export default router; },
],
},
]);
export default router;