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;