diff --git a/messages/en.json b/messages/en.json
index a6efd25..8c1e3e2 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -42,7 +42,8 @@
},
"user-manage":{
"title":"User",
- "email":"Email"
+ "email":"Email",
+ "provider":"Provider"
},
"captcha":{
"rotateCode": "Rotate Code",
diff --git a/messages/zh.json b/messages/zh.json
index 0bc901c..11a3e15 100644
--- a/messages/zh.json
+++ b/messages/zh.json
@@ -42,7 +42,8 @@
},
"user-manage":{
"title":"用户",
- "email":"邮箱"
+ "email":"邮箱",
+ "provider":"认证平台"
},
"captcha":{
"rotateCode": "图片旋转验证码",
diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx
index 1747773..1dd9518 100644
--- a/src/app/login/page.tsx
+++ b/src/app/login/page.tsx
@@ -9,17 +9,7 @@ import { Button, Card, CardBody, CardHeader, Divider, User } from '@nextui-org/r
import { RiGithubFill, RiGoogleFill } from '@remixicon/react';
import { signIn } from '@/auth';
-
-export const GiteeFill = ({ fill = 'currentColor', size = 20 }) => {
- return (
-
- );
-};
+import { GiteeFill } from '@/constants/icon';
export default async function Login() {
return (
diff --git a/src/app/user-manage/components/TableTemplate.tsx b/src/app/user-manage/components/TableTemplate.tsx
index 762a2af..4b59feb 100644
--- a/src/app/user-manage/components/TableTemplate.tsx
+++ b/src/app/user-manage/components/TableTemplate.tsx
@@ -2,13 +2,14 @@
* @Author: 白雾茫茫丶
* @Date: 2024-12-26 15:10:28
* @LastEditors: 白雾茫茫丶
- * @LastEditTime: 2025-01-08 14:43:33
+ * @LastEditTime: 2025-01-13 14:51:28
* @Description: 表格列表
*/
'use client';
import {
Button,
+ Chip,
Dropdown,
DropdownItem,
DropdownMenu,
@@ -24,12 +25,13 @@ import {
TableRow,
User,
} from '@nextui-org/react';
-import { RiEqualizer2Line } from '@remixicon/react';
+import { RiEqualizer2Line, RiGithubFill, RiGoogleFill } from '@remixicon/react';
import dayjs from 'dayjs';
import { useTranslations } from 'next-intl';
import { Key, ReactNode, useCallback, useMemo, useState } from 'react';
import { Empty } from '@/components/ui/empty';
+import { GiteeFill } from '@/constants/icon';
import HeaderSearch, { type HeaderSearchProps } from './HeaderSearch';
@@ -57,6 +59,7 @@ export default function TableTemplate({
// 列配置项
const columns: Column[] = [
{ key: 'userName', label: t('title') },
+ { key: 'provider', label: t('provider') },
{ key: 'createdAt', label: tGlobal('createdAt') },
];
// 列设置
@@ -117,6 +120,13 @@ export default function TableTemplate({
const renderCell = useCallback(
(user: App.SystemManage.User, columnKey: Key) => {
const cellValue = getKeyValue(user, columnKey as keyof App.SystemManage.User);
+
+ const providerIcon: Record = {
+ github: ,
+ gitee: ,
+ google: ,
+ };
+ const firstAccount = user?.accounts?.[0];
switch (columnKey) {
case 'userName':
return (
@@ -129,6 +139,12 @@ export default function TableTemplate({
name={user.name}
/>
);
+ case 'provider':
+ return (
+
+ {firstAccount?.provider}
+
+ );
case 'createdAt':
return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss');
default:
diff --git a/src/constants/icon.tsx b/src/constants/icon.tsx
new file mode 100644
index 0000000..317ae58
--- /dev/null
+++ b/src/constants/icon.tsx
@@ -0,0 +1,10 @@
+export const GiteeFill = ({ fill = 'currentColor', size = 20 }) => {
+ return (
+
+ );
+};
diff --git a/src/typings/app.d.ts b/src/typings/app.d.ts
index ef8fee1..f1f5d28 100644
--- a/src/typings/app.d.ts
+++ b/src/typings/app.d.ts
@@ -35,7 +35,9 @@ declare namespace App {
}
namespace SystemManage {
/** @description: 用户管理 */
- type User = import('@prisma/client').User;
+ type User = import('@prisma/client').User & {
+ accounts: import('@prisma/client').Account[];
+ };
/** @description: 查询参数 */
type UserSearchParams = Common.PaginatingParams & {
name?: string;