chore: 统一代码风格并配置ESLint和Prettier
配置ESLint和Prettier规则 添加前端和后端的忽略文件 统一代码格式和缩进 修复代码风格问题
This commit is contained in:
@@ -13,13 +13,13 @@ export const useAuth = () => {
|
||||
|
||||
export const AuthProvider = ({ children }) => {
|
||||
console.log('[AuthContext] Initializing...');
|
||||
|
||||
|
||||
const savedToken = localStorage.getItem('token');
|
||||
const savedUser = localStorage.getItem('user');
|
||||
|
||||
|
||||
console.log('[AuthContext] Saved token:', savedToken ? 'exists' : 'null');
|
||||
console.log('[AuthContext] Saved user:', savedUser ? 'exists' : 'null');
|
||||
|
||||
|
||||
const [user, setUser] = useState(() => {
|
||||
try {
|
||||
if (savedUser) {
|
||||
@@ -30,7 +30,7 @@ export const AuthProvider = ({ children }) => {
|
||||
}
|
||||
return null;
|
||||
});
|
||||
|
||||
|
||||
const [token, setToken] = useState(() => savedToken);
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [initialized, setInitialized] = useState(false);
|
||||
@@ -38,7 +38,7 @@ export const AuthProvider = ({ children }) => {
|
||||
useEffect(() => {
|
||||
const currentToken = localStorage.getItem('token');
|
||||
const currentUser = localStorage.getItem('user');
|
||||
|
||||
|
||||
if (currentToken && currentToken === token) {
|
||||
if (currentUser) {
|
||||
try {
|
||||
@@ -97,7 +97,7 @@ export const AuthProvider = ({ children }) => {
|
||||
}
|
||||
};
|
||||
|
||||
const register = async (userData) => {
|
||||
const register = async userData => {
|
||||
try {
|
||||
const response = await authAPI.register(userData);
|
||||
if (response.success) {
|
||||
@@ -123,13 +123,13 @@ export const AuthProvider = ({ children }) => {
|
||||
setUser(null);
|
||||
}, []);
|
||||
|
||||
const updateUser = (newUserData) => {
|
||||
const updateUser = newUserData => {
|
||||
const updatedUser = { ...user, ...newUserData };
|
||||
setUser(updatedUser);
|
||||
localStorage.setItem('user', JSON.stringify(updatedUser));
|
||||
};
|
||||
|
||||
const hasPermission = (permission) => {
|
||||
const hasPermission = permission => {
|
||||
if (!user) return false;
|
||||
return true;
|
||||
};
|
||||
@@ -144,14 +144,10 @@ export const AuthProvider = ({ children }) => {
|
||||
logout,
|
||||
updateUser,
|
||||
hasPermission,
|
||||
checkAdmin: () => authAPI.checkAdmin()
|
||||
checkAdmin: () => authAPI.checkAdmin(),
|
||||
};
|
||||
|
||||
return (
|
||||
<AuthContext.Provider value={value}>
|
||||
{children}
|
||||
</AuthContext.Provider>
|
||||
);
|
||||
return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>;
|
||||
};
|
||||
|
||||
export default AuthContext;
|
||||
|
||||
@@ -17,7 +17,7 @@ export const ConfigProvider = ({ children }) => {
|
||||
date_format: 'YYYY-MM-DD',
|
||||
session_timeout: 30,
|
||||
max_login_attempts: 5,
|
||||
maintenance_mode: false
|
||||
maintenance_mode: false,
|
||||
});
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
@@ -27,15 +27,15 @@ export const ConfigProvider = ({ children }) => {
|
||||
const response = await axios.get('/api/system-settings');
|
||||
const settings = response.data;
|
||||
const configValues = {};
|
||||
|
||||
|
||||
// 将配置转换为扁平结构
|
||||
Object.entries(settings).forEach(([key, value]) => {
|
||||
configValues[key] = value.value;
|
||||
});
|
||||
|
||||
|
||||
setConfig(prev => ({
|
||||
...prev,
|
||||
...configValues
|
||||
...configValues,
|
||||
}));
|
||||
} catch (error) {
|
||||
console.error('加载系统配置失败:', error);
|
||||
@@ -50,10 +50,10 @@ export const ConfigProvider = ({ children }) => {
|
||||
}, []);
|
||||
|
||||
// 更新配置
|
||||
const updateConfig = (newConfig) => {
|
||||
const updateConfig = newConfig => {
|
||||
setConfig(prev => ({
|
||||
...prev,
|
||||
...newConfig
|
||||
...newConfig,
|
||||
}));
|
||||
};
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@ export const Scene3DProvider = ({ children }) => {
|
||||
const [loadingDevices, setLoadingDevices] = useState(false);
|
||||
|
||||
// 使用 useCallback 稳定回调函数
|
||||
const selectDevice = useCallback((device) => {
|
||||
const selectDevice = useCallback(device => {
|
||||
setSelectedDevice(device);
|
||||
}, []);
|
||||
|
||||
const hoverDevice = useCallback((device) => {
|
||||
const hoverDevice = useCallback(device => {
|
||||
setHoveredDevice(device);
|
||||
}, []);
|
||||
|
||||
@@ -29,72 +29,84 @@ export const Scene3DProvider = ({ children }) => {
|
||||
setDeviceSlideEnabled(prev => !prev);
|
||||
}, []);
|
||||
|
||||
const setDeviceSlide = useCallback((enabled) => {
|
||||
const setDeviceSlide = useCallback(enabled => {
|
||||
setDeviceSlideEnabled(enabled);
|
||||
}, []);
|
||||
|
||||
const updateDevices = useCallback((newDevices) => {
|
||||
const updateDevices = useCallback(newDevices => {
|
||||
setDevices(newDevices);
|
||||
}, []);
|
||||
|
||||
const updateRacks = useCallback((newRacks) => {
|
||||
const updateRacks = useCallback(newRacks => {
|
||||
setRacks(newRacks);
|
||||
}, []);
|
||||
|
||||
const selectRack = useCallback((rack) => {
|
||||
const selectRack = useCallback(rack => {
|
||||
setSelectedRack(rack);
|
||||
}, []);
|
||||
|
||||
const updateDeviceCables = useCallback((cables) => {
|
||||
const updateDeviceCables = useCallback(cables => {
|
||||
setDeviceCables(cables);
|
||||
}, []);
|
||||
|
||||
const setLoading = useCallback((loading) => {
|
||||
const setLoading = useCallback(loading => {
|
||||
setLoadingDevices(loading);
|
||||
}, []);
|
||||
|
||||
// 使用 useMemo 缓存 context value,避免不必要的重渲染
|
||||
const value = useMemo(() => ({
|
||||
// 状态
|
||||
devices,
|
||||
selectedDevice,
|
||||
hoveredDevice,
|
||||
deviceSlideEnabled,
|
||||
selectedRack,
|
||||
racks,
|
||||
deviceCables,
|
||||
loadingDevices,
|
||||
// 方法
|
||||
selectDevice,
|
||||
hoverDevice,
|
||||
toggleDeviceSlide,
|
||||
setDeviceSlide,
|
||||
updateDevices,
|
||||
updateRacks,
|
||||
selectRack,
|
||||
updateDeviceCables,
|
||||
setLoading,
|
||||
// 直接设置状态的方法(用于兼容现有代码)
|
||||
setDevices,
|
||||
setSelectedDevice,
|
||||
setHoveredDevice,
|
||||
setDeviceSlideEnabled,
|
||||
setSelectedRack,
|
||||
setRacks,
|
||||
setDeviceCables,
|
||||
setLoadingDevices,
|
||||
}), [
|
||||
devices, selectedDevice, hoveredDevice, deviceSlideEnabled,
|
||||
selectedRack, racks, deviceCables, loadingDevices,
|
||||
selectDevice, hoverDevice, toggleDeviceSlide, setDeviceSlide,
|
||||
updateDevices, updateRacks, selectRack, updateDeviceCables, setLoading
|
||||
]);
|
||||
|
||||
return (
|
||||
<Scene3DContext.Provider value={value}>
|
||||
{children}
|
||||
</Scene3DContext.Provider>
|
||||
const value = useMemo(
|
||||
() => ({
|
||||
// 状态
|
||||
devices,
|
||||
selectedDevice,
|
||||
hoveredDevice,
|
||||
deviceSlideEnabled,
|
||||
selectedRack,
|
||||
racks,
|
||||
deviceCables,
|
||||
loadingDevices,
|
||||
// 方法
|
||||
selectDevice,
|
||||
hoverDevice,
|
||||
toggleDeviceSlide,
|
||||
setDeviceSlide,
|
||||
updateDevices,
|
||||
updateRacks,
|
||||
selectRack,
|
||||
updateDeviceCables,
|
||||
setLoading,
|
||||
// 直接设置状态的方法(用于兼容现有代码)
|
||||
setDevices,
|
||||
setSelectedDevice,
|
||||
setHoveredDevice,
|
||||
setDeviceSlideEnabled,
|
||||
setSelectedRack,
|
||||
setRacks,
|
||||
setDeviceCables,
|
||||
setLoadingDevices,
|
||||
}),
|
||||
[
|
||||
devices,
|
||||
selectedDevice,
|
||||
hoveredDevice,
|
||||
deviceSlideEnabled,
|
||||
selectedRack,
|
||||
racks,
|
||||
deviceCables,
|
||||
loadingDevices,
|
||||
selectDevice,
|
||||
hoverDevice,
|
||||
toggleDeviceSlide,
|
||||
setDeviceSlide,
|
||||
updateDevices,
|
||||
updateRacks,
|
||||
selectRack,
|
||||
updateDeviceCables,
|
||||
setLoading,
|
||||
]
|
||||
);
|
||||
|
||||
return <Scene3DContext.Provider value={value}>{children}</Scene3DContext.Provider>;
|
||||
};
|
||||
|
||||
// 自定义 Hook
|
||||
|
||||
Reference in New Issue
Block a user