管理后台初始化,登录,团队管理,报价单管理 完成

This commit is contained in:
‘Liammcl’
2024-12-15 17:39:58 +08:00
commit 5882bf9548
91 changed files with 16260 additions and 0 deletions

69
src/config/routes.js Normal file
View File

@@ -0,0 +1,69 @@
import { lazy } from 'react';
// Dashboard route
const dashboardRoute = {
path: 'dashboard',
component: lazy(() => import('@/pages/Dashboard')),
name: '仪表盘',
icon: 'dashboard',
};
// Resource Management routes
const resourceRoutes = [
{
path: 'team',
component: lazy(() => import('@/pages/resource/team')),
name: '团队管理',
icon: 'team',
},
{
path: 'bucket',
component: lazy(() => import('@/pages/resource/team')),
name: '对象存储',
icon: 'team',
},
];
// Company routes
const companyRoutes = [
{
path: 'quotation',
component: lazy(() => import('@/pages/company/quotation')),
name: '报价单',
icon: 'file',
},
{
path: 'customer',
component: lazy(() => import('@/pages/company/customer')),
name: '客户管理',
icon: 'user',
},
];
const marketingRoutes = [
];
export const routes = [
dashboardRoute,
{
path: 'resource',
component: lazy(() => import('@/pages/resource')),
name: '资源管理',
icon: 'appstore',
children: resourceRoutes,
},
{
path: 'company',
component: lazy(() => import('@/pages/company')),
name: '公司管理',
icon: 'bank',
children: companyRoutes,
},
{
path: 'marketing',
component: lazy(() => import('@/pages/marketing')),
name: '行销中心',
icon: 'shopping',
children: marketingRoutes,
},
];

36
src/config/supabase.js Normal file
View File

@@ -0,0 +1,36 @@
import { createClient } from '@supabase/supabase-js';
let supabaseInstance = null;
export const createSupabase = () => {
if (!supabaseInstance) {
const supabaseUrl = import.meta.env.VITE_SUPABASE_URL;
const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY;
if (!supabaseUrl || !supabaseAnonKey) {
throw new Error('Missing Supabase environment variables');
}
supabaseInstance = createClient(
supabaseUrl,
supabaseAnonKey,
{
auth: {
autoRefreshToken: true,
persistSession: true,
detectSessionInUrl: false,
},
db: {
schema: 'limq'
}
}
);
}
return supabaseInstance;
};
export const supabase = createSupabase();
export const clearSupabaseInstance = () => {
supabaseInstance = null;
};