fix: 修复proxy_service和account_service中不当的顶层import

- proxy_service.py: 将requests和WhitelistManager改为函数内延迟import,
  避免启动时加载不需要的依赖;移除未使用的get_exit_ip_via_proxy导入
- account_service.py: 移除未使用的func、joinedload、AuditLog、
  user_has_permission顶层导入
This commit is contained in:
yml2213
2026-06-23 08:35:29 +08:00
parent 2ab6724543
commit dd56de9bd4
40 changed files with 2006 additions and 936 deletions
+14 -9
View File
@@ -3,9 +3,10 @@ import {
Table, Button, Modal, Input, Select, message, Popconfirm, Typography, Tag, Space,
Row, Col, Card, Statistic,
} from 'antd';
import type { TableProps } from 'antd';
import { ImportOutlined, DeleteOutlined, TagOutlined, FilterOutlined } from '@ant-design/icons';
import { accountApi, userApi, type AccountItem, type UserInfo } from '../api/modules';
import { getUser, hasPerm } from '../store/auth';
import { usePermissions } from '../hooks/usePermissions';
import { getErrorMessage } from '../utils/error';
const { TextArea } = Input;
@@ -27,12 +28,12 @@ export default function AccountsPage() {
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
const [batchTagInput, setBatchTagInput] = useState('');
const [batchTagVisible, setBatchTagVisible] = useState(false);
const user = getUser();
const { can } = usePermissions();
const canViewAll = hasPerm(user, 'account:view_all');
const canImport = hasPerm(user, 'account:import');
const canAssign = hasPerm(user, 'account:assign');
const canDelete = hasPerm(user, 'account:delete');
const canViewAll = can('account:view_all');
const canImport = can('account:import');
const canAssign = can('account:assign');
const canDelete = can('account:delete');
const loadAccounts = async () => {
setLoading(true);
@@ -52,14 +53,18 @@ export default function AccountsPage() {
try {
const data = await userApi.list();
setUsers(data.filter((u) => u.role === 'support'));
} catch {}
} catch {
// 忽略客服列表加载失败,账号列表仍可继续使用。
}
};
const loadTags = async () => {
try {
const data = await accountApi.listTags();
setTags(data);
} catch {}
} catch {
// 忽略标签加载失败,页面会退化为无标签筛选。
}
};
useEffect(() => {
@@ -167,7 +172,7 @@ export default function AccountsPage() {
}
};
const columns = [
const columns: TableProps<AccountItem>['columns'] = [
{ title: 'ID', dataIndex: 'id', width: 60 },
{ title: '用户名', dataIndex: 'username' },
{