diff --git a/ui/src/components/header/Bread.tsx b/ui/src/components/header/Bread.tsx
index 34a1848..82f14a0 100644
--- a/ui/src/components/header/Bread.tsx
+++ b/ui/src/components/header/Bread.tsx
@@ -9,7 +9,7 @@ const OtherBread = {
chat: { title: '对话记录', to: '/chat' },
completion: { title: '补全记录', to: '/completion' },
model: { title: '模型管理', to: '/model' },
- user: { title: '用户管理', to: '/user' },
+ user: { title: '成员管理', to: '/user' },
admin: { title: '管理员', to: '/admin' },
};
diff --git a/ui/src/components/sidebar/index.tsx b/ui/src/components/sidebar/index.tsx
index 737a454..c470836 100644
--- a/ui/src/components/sidebar/index.tsx
+++ b/ui/src/components/sidebar/index.tsx
@@ -45,7 +45,7 @@ const menus = [
show: true,
},
{
- label: '用户管理',
+ label: '成员管理',
value: '/user',
pathname: 'user',
icon: 'icon-yonghuguanli1',
diff --git a/ui/src/pages/model/components/modelCard.tsx b/ui/src/pages/model/components/modelCard.tsx
index a719770..42bf7fb 100644
--- a/ui/src/pages/model/components/modelCard.tsx
+++ b/ui/src/pages/model/components/modelCard.tsx
@@ -78,6 +78,9 @@ const ModelItem = ({
overflow: 'hidden',
position: 'relative',
transition: 'all 0.3s ease',
+ borderStyle: 'solid',
+ borderWidth: '1px',
+ borderColor: data.is_active ? 'success.main' : 'transparent',
boxShadow:
'0px 0px 10px 0px rgba(68, 80, 91, 0.1), 0px 0px 2px 0px rgba(68, 80, 91, 0.1)',
'&:hover': {
diff --git a/ui/src/pages/user/index.tsx b/ui/src/pages/user/index.tsx
index 271351c..7a8316c 100644
--- a/ui/src/pages/user/index.tsx
+++ b/ui/src/pages/user/index.tsx
@@ -72,98 +72,90 @@ const User = () => {
};
return (
-
-
-
-
-
- 强制成员启用两步认证
- {
- updateSetting({ force_two_factor_auth: e.target.checked });
- }}
- />
-
-
-
-
- 禁止成员使用密码登录
-
- updateSetting({ disable_password_login: e.target.checked })
+
+
+
+
+
+
+ 第三方登录
+
+
-
-
-
-
-
- 第三方登录
-
-
-
-
+ }}
+ >
+
+
+
+
+ 钉钉
+
-
-
-
-
+
+
+
+
+
+
+ 禁止成员使用密码登录
+
+ updateSetting({ disable_password_login: e.target.checked })
+ }
+ />
+
+
+ 强制成员启用两步认证
+ {
+ updateSetting({ force_two_factor_auth: e.target.checked });
+ }}
+ />
+
+
+
-
-
setDingdingLoginSettingModalOpen(false)}
diff --git a/ui/src/pages/user/memberManage.tsx b/ui/src/pages/user/memberManage.tsx
index 7c27310..348a819 100644
--- a/ui/src/pages/user/memberManage.tsx
+++ b/ui/src/pages/user/memberManage.tsx
@@ -11,10 +11,11 @@ import {
TextField,
Chip,
Paper,
- ButtonBase,
+ Link,
IconButton,
Menu,
MenuItem,
+ Typography,
} from '@mui/material';
import { Table, MenuSelect, Modal, message } from '@c-x/ui';
import InviteUserModal from './inviteUserModal';
@@ -23,6 +24,7 @@ import { ConstsUserStatus, DomainUser } from '@/api/types';
import dayjs from 'dayjs';
import { CopyToClipboard } from 'react-copy-to-clipboard';
import ErrorRoundedIcon from '@mui/icons-material/ErrorRounded';
+import AccountCircleIcon from '@mui/icons-material/AccountCircle';
const ResetPasswordModal = ({
open,
@@ -248,40 +250,39 @@ const MemberManage = () => {
{
title: '账号',
dataIndex: 'username',
- },
- {
- title: '两步认证',
- dataIndex: 'two_step_auth',
- render: (text) => {
- return text ? (
-
- ) : (
-
- );
+ render: (text, record) => {
+ return <>
+
+ navigate(`/dashboard/member/${record.id}`)} sx={{
+ '&:hover': {
+ color: 'info.main',
+ },
+ cursor: 'pointer'
+ }}>
+
+
+ {text}
+
+
+ {record.email}
+
+ >;
},
},
{
- title: '最近活跃时间',
+ title: '加入时间',
+ dataIndex: 'created_at',
+ width: 120,
+ render: (text) => {
+ return dayjs.unix(text).fromNow();
+ },
+ },
+ {
+ title: '最近活跃',
dataIndex: 'last_active_at',
- render: (text) => {
- return dayjs.unix(text).format('YYYY-MM-DD HH:mm:ss');
- },
- },
- {
- title: '统计使用情况',
- dataIndex: 'status',
- render: (_, record) => {
- return (
- navigate(`/dashboard/member/${record.id}`)}
- sx={{
- color: 'info.main',
- }}
- >
- 点击查看
-
- );
+ width: 120,
+ render: (text, record) => {
+ return record.last_active_at === 0 ? '从未使用' : dayjs.unix(text).fromNow();
},
},
{