From e6949e611ab18c11ff789d91c3083fcedf0b726e Mon Sep 17 00:00:00 2001 From: t0ng7u Date: Sun, 29 Jun 2025 02:32:09 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9A=BDstyle:=20change=20the=20border=20radiu?= =?UTF-8?q?s=20of=20most=20components=20from=20full=20to=20lg=20size?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/components/auth/LoginForm.js | 2 - .../components/auth/PasswordResetConfirm.js | 2 - web/src/components/auth/PasswordResetForm.js | 1 - web/src/components/auth/RegisterForm.js | 6 -- web/src/components/layout/NoticeModal.js | 4 +- web/src/components/table/ChannelsTable.js | 90 ++++++------------- web/src/components/table/LogsTable.js | 25 ++---- web/src/components/table/MjLogsTable.js | 15 +--- web/src/components/table/ModelPricing.js | 13 +-- web/src/components/table/RedemptionsTable.js | 58 +++--------- web/src/components/table/TaskLogsTable.js | 14 +-- web/src/components/table/TokensTable.js | 73 ++++----------- web/src/components/table/UsersTable.js | 37 ++------ web/src/i18n/locales/en.json | 4 +- web/src/index.css | 3 +- web/src/pages/Channel/EditChannel.js | 38 +------- web/src/pages/Channel/EditTagModal.js | 9 +- web/src/pages/Home/index.js | 1 + web/src/pages/Redemption/EditRedemption.js | 4 +- .../Setting/Dashboard/SettingsAPIInfo.js | 14 ++- .../Dashboard/SettingsAnnouncements.js | 13 +-- .../pages/Setting/Dashboard/SettingsFAQ.js | 12 +-- .../Setting/Dashboard/SettingsUptimeKuma.js | 12 +-- web/src/pages/Token/EditToken.js | 59 ++++++------ web/src/pages/User/AddUser.js | 20 +++-- web/src/pages/User/EditUser.js | 4 +- 26 files changed, 147 insertions(+), 386 deletions(-) diff --git a/web/src/components/auth/LoginForm.js b/web/src/components/auth/LoginForm.js index 85d22dfc..ae7fc0fc 100644 --- a/web/src/components/auth/LoginForm.js +++ b/web/src/components/auth/LoginForm.js @@ -399,7 +399,6 @@ const LoginForm = () => { placeholder={t('请输入您的用户名或邮箱地址')} name="username" size="large" - className="!rounded-md" onChange={(value) => handleChange('username', value)} prefix={} /> @@ -411,7 +410,6 @@ const LoginForm = () => { name="password" mode="password" size="large" - className="!rounded-md" onChange={(value) => handleChange('password', value)} prefix={} /> diff --git a/web/src/components/auth/PasswordResetConfirm.js b/web/src/components/auth/PasswordResetConfirm.js index e7809298..5fbd1fc5 100644 --- a/web/src/components/auth/PasswordResetConfirm.js +++ b/web/src/components/auth/PasswordResetConfirm.js @@ -113,7 +113,6 @@ const PasswordResetConfirm = () => { label={t('邮箱')} name="email" size="large" - className="!rounded-md" disabled={true} prefix={} placeholder={email ? '' : t('等待获取邮箱信息...')} @@ -125,7 +124,6 @@ const PasswordResetConfirm = () => { label={t('新密码')} name="newPassword" size="large" - className="!rounded-md" disabled={true} prefix={} suffix={ diff --git a/web/src/components/auth/PasswordResetForm.js b/web/src/components/auth/PasswordResetForm.js index 9a782117..033989e0 100644 --- a/web/src/components/auth/PasswordResetForm.js +++ b/web/src/components/auth/PasswordResetForm.js @@ -102,7 +102,6 @@ const PasswordResetForm = () => { placeholder={t('请输入您的邮箱地址')} name="email" size="large" - className="!rounded-md" value={email} onChange={handleChange} prefix={} diff --git a/web/src/components/auth/RegisterForm.js b/web/src/components/auth/RegisterForm.js index a3a5e0b4..9d213a60 100644 --- a/web/src/components/auth/RegisterForm.js +++ b/web/src/components/auth/RegisterForm.js @@ -394,7 +394,6 @@ const RegisterForm = () => { placeholder={t('请输入用户名')} name="username" size="large" - className="!rounded-md" onChange={(value) => handleChange('username', value)} prefix={} /> @@ -406,7 +405,6 @@ const RegisterForm = () => { name="password" mode="password" size="large" - className="!rounded-md" onChange={(value) => handleChange('password', value)} prefix={} /> @@ -418,7 +416,6 @@ const RegisterForm = () => { name="password2" mode="password" size="large" - className="!rounded-md" onChange={(value) => handleChange('password2', value)} prefix={} /> @@ -432,7 +429,6 @@ const RegisterForm = () => { name="email" type="email" size="large" - className="!rounded-md" onChange={(value) => handleChange('email', value)} prefix={} suffix={ @@ -440,7 +436,6 @@ const RegisterForm = () => { onClick={sendVerificationCode} loading={verificationCodeLoading} size="small" - className="!rounded-md mr-2" > {t('获取验证码')} @@ -452,7 +447,6 @@ const RegisterForm = () => { placeholder={t('输入验证码')} name="verification_code" size="large" - className="!rounded-md" onChange={(value) => handleChange('verification_code', value)} prefix={} /> diff --git a/web/src/components/layout/NoticeModal.js b/web/src/components/layout/NoticeModal.js index 55126ad8..2a79540c 100644 --- a/web/src/components/layout/NoticeModal.js +++ b/web/src/components/layout/NoticeModal.js @@ -170,8 +170,8 @@ const NoticeModal = ({ visible, onClose, isMobile, defaultTab = 'inApp', unreadK onCancel={onClose} footer={(
- - + +
)} size={isMobile ? 'full-width' : 'large'} diff --git a/web/src/components/table/ChannelsTable.js b/web/src/components/table/ChannelsTable.js index 18443243..0e84437d 100644 --- a/web/src/components/table/ChannelsTable.js +++ b/web/src/components/table/ChannelsTable.js @@ -10,16 +10,6 @@ import { getChannelIcon, renderQuotaWithAmount } from '../../helpers/index.js'; - -import { - CheckCircle, - XCircle, - AlertCircle, - HelpCircle, - Coins, - Tags, -} from 'lucide-react'; - import { CHANNEL_OPTIONS, ITEMS_PER_PAGE, MODEL_TABLE_PAGE_SIZE } from '../../constants/index.js'; import { Button, @@ -50,12 +40,8 @@ import { import EditChannel from '../../pages/Channel/EditChannel.js'; import { IconTreeTriangleDown, - IconPlus, IconSearch, - IconDelete, IconMore, - IconCopy, - IconSmallTriangleRight } from '@douyinfe/semi-icons'; import { loadChannelModels, isMobile, copy } from '../../helpers'; import EditTagModal from '../../pages/Channel/EditTagModal.js'; @@ -91,7 +77,6 @@ const ChannelsTable = () => { return ( } size='large' shape='circle' type='light' @@ -105,25 +90,25 @@ const ChannelsTable = () => { switch (status) { case 1: return ( - }> + {t('已启用')} ); case 2: return ( - }> + {t('已禁用')} ); case 3: return ( - }> + {t('自动禁用')} ); default: return ( - }> + {t('未知状态')} ); @@ -346,7 +331,7 @@ const ChannelsTable = () => {
- }> + {renderQuota(record.used_quota)} @@ -356,7 +341,6 @@ const ChannelsTable = () => { type='ghost' size='large' shape='circle' - prefixIcon={} onClick={() => updateChannelBalance(record)} > {renderQuotaWithAmount(record.balance)} @@ -368,7 +352,7 @@ const ChannelsTable = () => { } else { return ( - }> + {renderQuota(record.used_quota)} @@ -492,7 +476,6 @@ const ChannelsTable = () => { { node: 'item', name: t('删除'), - icon: , type: 'danger', onClick: () => { Modal.confirm({ @@ -509,7 +492,6 @@ const ChannelsTable = () => { { node: 'item', name: t('复制'), - icon: , type: 'primary', onClick: () => { Modal.confirm({ @@ -524,7 +506,7 @@ const ChannelsTable = () => { return ( @@ -1508,7 +1480,7 @@ const ChannelsTable = () => { disabled={!enableBatchDelete} theme='light' type='danger' - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" onClick={() => { Modal.confirm({ title: t('确定是否要删除所选通道?'), @@ -1526,7 +1498,7 @@ const ChannelsTable = () => { theme='light' type='primary' onClick={() => setShowBatchSetTag(true)} - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" > {t('批量设置标签')} @@ -1541,7 +1513,7 @@ const ChannelsTable = () => { size='small' theme='light' type='warning' - className="!rounded-full w-full" + className="w-full" onClick={() => { Modal.confirm({ title: t('确定?'), @@ -1560,7 +1532,7 @@ const ChannelsTable = () => { size='small' theme='light' type='secondary' - className="!rounded-full w-full" + className="w-full" onClick={() => { Modal.confirm({ title: t('确定?'), @@ -1579,7 +1551,7 @@ const ChannelsTable = () => { size='small' theme='light' type='danger' - className="!rounded-full w-full" + className="w-full" onClick={() => { Modal.confirm({ title: t('确定是否要删除禁用通道?'), @@ -1598,7 +1570,7 @@ const ChannelsTable = () => { size='small' theme='light' type='tertiary' - className="!rounded-full w-full" + className="w-full" onClick={() => { Modal.confirm({ title: t('确定是否要修复数据库一致性?'), @@ -1615,7 +1587,7 @@ const ChannelsTable = () => { } > - @@ -1624,7 +1596,7 @@ const ChannelsTable = () => { size='small' theme='light' type='secondary' - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" onClick={() => setCompactMode(!compactMode)} > {compactMode ? t('自适应列表') : t('紧凑列表')} @@ -1713,8 +1685,7 @@ const ChannelsTable = () => { size='small' theme='light' type='primary' - icon={} - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" onClick={() => { setEditingChannel({ id: undefined, @@ -1729,7 +1700,7 @@ const ChannelsTable = () => { size='small' theme='light' type='primary' - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" onClick={refresh} > {t('刷新')} @@ -1740,7 +1711,7 @@ const ChannelsTable = () => { theme='light' type='tertiary' onClick={() => setShowColumnSelector(true)} - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" > {t('列设置')} @@ -1764,7 +1735,6 @@ const ChannelsTable = () => { field="searchKeyword" prefix={} placeholder={t('渠道ID,名称,密钥,API地址')} - className="!rounded-full" showClear pure /> @@ -1775,7 +1745,6 @@ const ChannelsTable = () => { field="searchModel" prefix={} placeholder={t('模型关键字')} - className="!rounded-full" showClear pure /> @@ -1789,7 +1758,7 @@ const ChannelsTable = () => { { label: t('选择分组'), value: null }, ...groupOptions, ]} - className="!rounded-full w-full" + className="w-full" showClear pure onChange={() => { @@ -1805,7 +1774,7 @@ const ChannelsTable = () => { type="primary" htmlType="submit" loading={loading || searching} - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" > {t('查询')} @@ -1821,7 +1790,7 @@ const ChannelsTable = () => { }, 100); } }} - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" > {t('重置')} @@ -1917,7 +1886,6 @@ const ChannelsTable = () => { value={batchSetTagValue} onChange={(v) => setBatchSetTagValue(v)} size='large' - className="!rounded-full" />
@@ -1949,15 +1917,13 @@ const ChannelsTable = () => { setModelSearchKeyword(v); setModelTablePage(1); }} - className="!w-full !rounded-full" + className="!w-full" prefix={} showClear /> diff --git a/web/src/components/table/LogsTable.js b/web/src/components/table/LogsTable.js index a6199441..cc1d2082 100644 --- a/web/src/components/table/LogsTable.js +++ b/web/src/components/table/LogsTable.js @@ -47,7 +47,7 @@ import { } from '@douyinfe/semi-illustrations'; import { ITEMS_PER_PAGE } from '../../constants'; import Paragraph from '@douyinfe/semi-ui/lib/es/typography/paragraph'; -import { IconSetting, IconSearch, IconHelpCircle, IconDescend } from '@douyinfe/semi-icons'; +import { IconSearch, IconHelpCircle } from '@douyinfe/semi-icons'; import { Route } from 'lucide-react'; import { useTableCompactMode } from '../../hooks/useTableCompactMode'; @@ -696,21 +696,18 @@ const LogsTable = () => { @@ -1221,10 +1218,10 @@ const LogsTable = () => { size='large' style={{ padding: 15, - borderRadius: '9999px', fontWeight: 500, boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)', }} + className='!rounded-lg' > {t('消耗额度')}: {renderQuota(stat.quota)} @@ -1233,10 +1230,10 @@ const LogsTable = () => { size='large' style={{ padding: 15, - borderRadius: '9999px', fontWeight: 500, boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)', }} + className='!rounded-lg' > RPM: {stat.rpm} @@ -1247,9 +1244,9 @@ const LogsTable = () => { padding: 15, border: 'none', boxShadow: '0 2px 8px rgba(0, 0, 0, 0.1)', - borderRadius: '9999px', fontWeight: 500, }} + className='!rounded-lg' > TPM: {stat.tpm} @@ -1258,8 +1255,7 @@ const LogsTable = () => { @@ -1402,16 +1392,13 @@ const LogsTable = () => { }, 100); } }} - className='!rounded-full' > {t('重置')} diff --git a/web/src/components/table/MjLogsTable.js b/web/src/components/table/MjLogsTable.js index 008a7785..f4337f64 100644 --- a/web/src/components/table/MjLogsTable.js +++ b/web/src/components/table/MjLogsTable.js @@ -59,8 +59,6 @@ import { ITEMS_PER_PAGE } from '../../constants'; import { IconEyeOpened, IconSearch, - IconSetting, - IconDescend } from '@douyinfe/semi-icons'; import { useTableCompactMode } from '../../hooks/useTableCompactMode'; @@ -517,7 +515,6 @@ const LogsTable = () => { setModalImageUrl(text); setIsModalOpenurl(true); }} - className="!rounded-full" > {t('查看图片')} @@ -735,21 +732,18 @@ const LogsTable = () => { @@ -827,8 +821,7 @@ const LogsTable = () => { @@ -908,16 +898,13 @@ const LogsTable = () => { }, 100); } }} - className="!rounded-full" > {t('重置')} diff --git a/web/src/components/table/ModelPricing.js b/web/src/components/table/ModelPricing.js index be389f80..56d40257 100644 --- a/web/src/components/table/ModelPricing.js +++ b/web/src/components/table/ModelPricing.js @@ -161,6 +161,7 @@ const ModelPricing = () => { { setSelectedGroup(group); showInfo( @@ -170,7 +171,7 @@ const ModelPricing = () => { }), ); }} - className="cursor-pointer hover:opacity-80 transition-opacity !rounded-full" + className="cursor-pointer hover:opacity-80 transition-opacity" > {group} @@ -404,7 +405,6 @@ const ModelPricing = () => { } placeholder={t('模糊搜索模型名称')} - className="!rounded-lg" onCompositionStart={handleCompositionStart} onCompositionEnd={handleCompositionEnd} onChange={handleChange} @@ -418,7 +418,7 @@ const ModelPricing = () => { icon={} onClick={() => copyText(selectedRowKeys)} disabled={selectedRowKeys.length === 0} - className="!rounded-lg !bg-blue-500 hover:!bg-blue-600 text-white" + className="!bg-blue-500 hover:!bg-blue-600 text-white" size="large" > {t('复制选中模型')} @@ -477,13 +477,6 @@ const ModelPricing = () => { }} bodyStyle={{ padding: 0 }} > - {/* 装饰性背景元素 */} -
-
-
-
-
-
diff --git a/web/src/components/table/RedemptionsTable.js b/web/src/components/table/RedemptionsTable.js index a7e6224f..9bdb603f 100644 --- a/web/src/components/table/RedemptionsTable.js +++ b/web/src/components/table/RedemptionsTable.js @@ -8,14 +8,7 @@ import { renderQuota } from '../../helpers'; -import { - CheckCircle, - XCircle, - Minus, - HelpCircle, - Coins, - Ticket -} from 'lucide-react'; +import { Ticket } from 'lucide-react'; import { ITEMS_PER_PAGE } from '../../constants'; import { @@ -37,16 +30,8 @@ import { IllustrationNoResultDark } from '@douyinfe/semi-illustrations'; import { - IconPlus, - IconCopy, IconSearch, - IconEyeOpened, - IconEdit, - IconDelete, - IconStop, - IconPlay, IconMore, - IconDescend } from '@douyinfe/semi-icons'; import EditRedemption from '../../pages/Redemption/EditRedemption'; import { useTranslation } from 'react-i18next'; @@ -68,31 +53,31 @@ const RedemptionsTable = () => { const renderStatus = (status, record) => { if (isExpired(record)) { return ( - }>{t('已过期')} + {t('已过期')} ); } switch (status) { case 1: return ( - }> + {t('未使用')} ); case 2: return ( - }> + {t('已禁用')} ); case 3: return ( - }> + {t('已使用')} ); default: return ( - }> + {t('未知状态')} ); @@ -122,7 +107,7 @@ const RedemptionsTable = () => { render: (text, record, index) => { return (
- }> + {renderQuota(parseInt(text))}
@@ -160,7 +145,6 @@ const RedemptionsTable = () => { { node: 'item', name: t('删除'), - icon: , type: 'danger', onClick: () => { Modal.confirm({ @@ -180,7 +164,6 @@ const RedemptionsTable = () => { moreMenuItems.push({ node: 'item', name: t('禁用'), - icon: , type: 'warning', onClick: () => { manageRedemption(record.id, 'disable', record); @@ -190,7 +173,6 @@ const RedemptionsTable = () => { moreMenuItems.push({ node: 'item', name: t('启用'), - icon: , type: 'secondary', onClick: () => { manageRedemption(record.id, 'enable', record); @@ -203,21 +185,17 @@ const RedemptionsTable = () => {
@@ -572,7 +542,7 @@ const RedemptionsTable = () => { }, 100); } }} - className="!rounded-full flex-1 md:flex-initial md:w-auto" + className="flex-1 md:flex-initial md:w-auto" > {t('重置')} diff --git a/web/src/components/table/TaskLogsTable.js b/web/src/components/table/TaskLogsTable.js index 65a8e2a6..0a6ccd6d 100644 --- a/web/src/components/table/TaskLogsTable.js +++ b/web/src/components/table/TaskLogsTable.js @@ -47,8 +47,6 @@ import { ITEMS_PER_PAGE } from '../../constants'; import { IconEyeOpened, IconSearch, - IconSetting, - IconDescend } from '@douyinfe/semi-icons'; import { useTableCompactMode } from '../../hooks/useTableCompactMode'; @@ -600,21 +598,18 @@ const LogsTable = () => { @@ -684,8 +679,7 @@ const LogsTable = () => { @@ -765,16 +756,13 @@ const LogsTable = () => { }, 100); } }} - className="!rounded-full" > {t('重置')} diff --git a/web/src/components/table/TokensTable.js b/web/src/components/table/TokensTable.js index db34dc02..f91f7b82 100644 --- a/web/src/components/table/TokensTable.js +++ b/web/src/components/table/TokensTable.js @@ -1,4 +1,4 @@ -import React, { useEffect, useState, useMemo } from 'react'; +import React, { useEffect, useState } from 'react'; import { API, copy, @@ -9,7 +9,6 @@ import { renderQuota, getQuotaPerUnit } from '../../helpers'; - import { ITEMS_PER_PAGE } from '../../constants'; import { Button, @@ -29,32 +28,12 @@ import { IllustrationNoResult, IllustrationNoResultDark } from '@douyinfe/semi-illustrations'; - import { - CheckCircle, - Shield, - XCircle, - Clock, - Gauge, - HelpCircle, - Infinity, - Coins, - Key -} from 'lucide-react'; - -import { - IconPlus, - IconCopy, IconSearch, IconTreeTriangleDown, - IconEyeOpened, - IconEdit, - IconDelete, - IconStop, - IconPlay, IconMore, - IconDescend } from '@douyinfe/semi-icons'; +import { Key } from 'lucide-react'; import EditToken from '../../pages/Token/EditToken'; import { useTranslation } from 'react-i18next'; import { useTableCompactMode } from '../../hooks/useTableCompactMode'; @@ -73,38 +52,38 @@ const TokensTable = () => { case 1: if (model_limits_enabled) { return ( - }> + {t('已启用:限制模型')} ); } else { return ( - }> + {t('已启用')} ); } case 2: return ( - }> + {t('已禁用')} ); case 3: return ( - }> + {t('已过期')} ); case 4: return ( - }> + {t('已耗尽')} ); default: return ( - }> + {t('未知状态')} ); @@ -137,7 +116,7 @@ const TokensTable = () => { render: (text, record, index) => { return (
- }> + {renderQuota(parseInt(text))}
@@ -164,7 +143,7 @@ const TokensTable = () => { return (
{record.unlimited_quota ? ( - }> + {t('无限制')} ) : ( @@ -172,7 +151,6 @@ const TokensTable = () => { size={'large'} color={getQuotaColor(parseInt(text))} shape='circle' - prefixIcon={} > {renderQuota(parseInt(text))} @@ -238,7 +216,6 @@ const TokensTable = () => { { node: 'item', name: t('查看'), - icon: , onClick: () => { Modal.info({ title: t('令牌详情'), @@ -250,7 +227,6 @@ const TokensTable = () => { { node: 'item', name: t('删除'), - icon: , type: 'danger', onClick: () => { Modal.confirm({ @@ -271,7 +247,6 @@ const TokensTable = () => { moreMenuItems.push({ node: 'item', name: t('禁用'), - icon: , type: 'warning', onClick: () => { manageToken(record.id, 'disable', record); @@ -281,7 +256,6 @@ const TokensTable = () => { moreMenuItems.push({ node: 'item', name: t('启用'), - icon: , type: 'secondary', onClick: () => { manageToken(record.id, 'enable', record); @@ -292,7 +266,7 @@ const TokensTable = () => { return ( @@ -778,7 +739,7 @@ const TokensTable = () => { }, 100); } }} - className="!rounded-full flex-1 md:flex-initial md:w-auto" + className="flex-1 md:flex-initial md:w-auto" > {t('重置')} diff --git a/web/src/components/table/UsersTable.js b/web/src/components/table/UsersTable.js index 94b82912..31a8b2c0 100644 --- a/web/src/components/table/UsersTable.js +++ b/web/src/components/table/UsersTable.js @@ -34,17 +34,9 @@ import { IllustrationNoResultDark } from '@douyinfe/semi-illustrations'; import { - IconPlus, IconSearch, - IconEdit, - IconDelete, - IconStop, - IconPlay, - IconMore, IconUserAdd, - IconArrowUp, - IconArrowDown, - IconDescend + IconMore, } from '@douyinfe/semi-icons'; import { ITEMS_PER_PAGE } from '../../constants'; import AddUser from '../../pages/User/AddUser'; @@ -127,7 +119,7 @@ const UsersTable = () => {
-
+
{displayRemark}
@@ -221,7 +213,6 @@ const UsersTable = () => { { node: 'item', name: t('提升'), - icon: , type: 'warning', onClick: () => { Modal.confirm({ @@ -236,7 +227,6 @@ const UsersTable = () => { { node: 'item', name: t('降级'), - icon: , type: 'secondary', onClick: () => { Modal.confirm({ @@ -251,7 +241,6 @@ const UsersTable = () => { { node: 'item', name: t('注销'), - icon: , type: 'danger', onClick: () => { Modal.confirm({ @@ -272,7 +261,6 @@ const UsersTable = () => { moreMenuItems.splice(-1, 0, { node: 'item', name: t('禁用'), - icon: , type: 'warning', onClick: () => { manageUser(record.id, 'disable', record); @@ -282,7 +270,6 @@ const UsersTable = () => { moreMenuItems.splice(-1, 0, { node: 'item', name: t('启用'), - icon: , type: 'secondary', onClick: () => { manageUser(record.id, 'enable', record); @@ -294,11 +281,9 @@ const UsersTable = () => { return ( @@ -627,7 +608,7 @@ const UsersTable = () => { }, 100); } }} - className="!rounded-full flex-1 md:flex-initial md:w-auto" + className="flex-1 md:flex-initial md:w-auto" > {t('重置')} @@ -689,7 +670,7 @@ const UsersTable = () => { style={{ padding: 30 }} /> } - className="rounded-xl overflow-hidden" + className="overflow-hidden" size="middle" /> diff --git a/web/src/i18n/locales/en.json b/web/src/i18n/locales/en.json index 8a38ef0c..9a0369e6 100644 --- a/web/src/i18n/locales/en.json +++ b/web/src/i18n/locales/en.json @@ -456,7 +456,7 @@ "创建新的令牌": "Create New Token", "令牌分组,默认为用户的分组": "Token group, default is the your's group", "IP白名单": "IP whitelist", - "注意,令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制。": "Note that the quota of the token is only used to limit the maximum quota usage of the token itself, and the actual usage is limited by the remaining quota of the account.", + "令牌的额度仅用于限制令牌本身的最大额度使用量,实际的使用受到账户的剩余额度限制": "The quota of the token is only used to limit the maximum quota usage of the token itself, and the actual usage is limited by the remaining quota of the account", "无限额度": "Unlimited quota", "更新令牌信息": "Update Token Information", "请输入充值码!": "Please enter the recharge code!", @@ -1746,7 +1746,7 @@ "请先选择模型!": "Please select a model first!", "已复制 ${count} 个模型": "Copied ${count} models", "复制失败,请手动复制": "Copy failed, please copy manually", - "快捷设置": "Quick settings", + "过期时间快捷设置": "Expiration time quick settings", "批量创建时会在名称后自动添加随机后缀": "When creating in batches, a random suffix will be automatically added to the name", "额度必须大于0": "Quota must be greater than 0", "生成数量必须大于0": "Generation quantity must be greater than 0", diff --git a/web/src/index.css b/web/src/index.css index b9a772ac..8e71536a 100644 --- a/web/src/index.css +++ b/web/src/index.css @@ -43,6 +43,7 @@ code { /* ==================== 导航和侧边栏样式 ==================== */ /* 导航项样式 */ +.semi-input-textarea-wrapper, .semi-navigation-sub-title, .semi-chat-inputBox-sendButton, .semi-page-item, @@ -53,7 +54,7 @@ code { .semi-select, .semi-button, .semi-datepicker-range-input { - border-radius: 9999px !important; + border-radius: 10px !important; } .semi-navigation-item { diff --git a/web/src/pages/Channel/EditChannel.js b/web/src/pages/Channel/EditChannel.js index 1ca3d374..a05b5703 100644 --- a/web/src/pages/Channel/EditChannel.js +++ b/web/src/pages/Channel/EditChannel.js @@ -457,7 +457,6 @@ const EditChannel = (props) => {
@@ -657,7 +648,6 @@ const EditChannel = (props) => { onChange={(value) => handleInputChange('other', value)} value={inputs.other} autoComplete='new-password' - className="!rounded-lg" />
@@ -678,7 +668,6 @@ const EditChannel = (props) => { onChange={(value) => handleInputChange('base_url', value)} value={inputs.base_url} autoComplete='new-password' - className="!rounded-lg" />
@@ -701,7 +690,6 @@ const EditChannel = (props) => { onChange={(value) => handleInputChange('base_url', value)} value={inputs.base_url} autoComplete='new-password' - className="!rounded-lg" /> {t('对于官方渠道,new-api已经内置地址,除非是第三方代理站点或者Azure的特殊接入地址,否则不需要填写')} @@ -718,7 +706,6 @@ const EditChannel = (props) => { onChange={(value) => handleInputChange('base_url', value)} value={inputs.base_url} autoComplete='new-password' - className="!rounded-lg" />
)} @@ -734,7 +721,6 @@ const EditChannel = (props) => { onChange={(value) => handleInputChange('base_url', value)} value={inputs.base_url} autoComplete='new-password' - className="!rounded-lg" />
)} @@ -769,7 +755,6 @@ const EditChannel = (props) => { value={inputs.models} autoComplete='new-password' optionList={modelOptions} - className="!rounded-lg" />
@@ -777,14 +762,12 @@ const EditChannel = (props) => { @@ -792,7 +775,6 @@ const EditChannel = (props) => { @@ -800,7 +782,6 @@ const EditChannel = (props) => { @@ -818,7 +799,6 @@ const EditChannel = (props) => { showError(t('复制失败')); } }} - className="!rounded-lg" > {t('复制所有模型')} @@ -842,7 +822,6 @@ const EditChannel = (props) => { placeholder={t('输入自定义模型名称')} value={customModel} onChange={(value) => setCustomModel(value.trim())} - className="!rounded-lg" />
@@ -858,7 +837,6 @@ const EditChannel = (props) => { autosize value={inputs.model_mapping} autoComplete='new-password' - className="!rounded-lg font-mono" /> { placeholder={t('不填则为模型列表第一个')} onChange={(value) => handleInputChange('test_model', value)} value={inputs.test_model} - className="!rounded-lg" />
@@ -909,7 +886,6 @@ const EditChannel = (props) => { value={inputs.groups} autoComplete='new-password' optionList={groupOptions} - className="!rounded-lg" /> @@ -922,7 +898,6 @@ const EditChannel = (props) => { onChange={(value) => handleInputChange('other', value)} value={inputs.other} autoComplete='new-password' - className="!rounded-lg" /> )} @@ -943,7 +918,6 @@ const EditChannel = (props) => { onChange={(value) => handleInputChange('other', value)} value={inputs.other} autoComplete='new-password' - className="!rounded-lg font-mono" /> { onChange={(value) => handleInputChange('other', value)} value={inputs.other} autoComplete='new-password' - className="!rounded-lg" /> )} @@ -977,7 +950,6 @@ const EditChannel = (props) => { onChange={(value) => handleInputChange('other', value)} value={inputs.other} autoComplete='new-password' - className="!rounded-lg" /> )} @@ -991,7 +963,6 @@ const EditChannel = (props) => { onChange={(value) => handleInputChange('other', value)} value={inputs.other} autoComplete='new-password' - className="!rounded-lg" /> )} @@ -1004,7 +975,6 @@ const EditChannel = (props) => { onChange={(value) => handleInputChange('tag', value)} value={inputs.tag} autoComplete='new-password' - className="!rounded-lg" /> @@ -1023,7 +993,6 @@ const EditChannel = (props) => { }} value={inputs.priority} autoComplete='new-password' - className="!rounded-lg" /> @@ -1042,7 +1011,6 @@ const EditChannel = (props) => { }} value={inputs.weight} autoComplete='new-password' - className="!rounded-lg" /> @@ -1058,7 +1026,6 @@ const EditChannel = (props) => { autosize value={inputs.setting} autoComplete='new-password' - className="!rounded-lg font-mono" />
{ autosize value={inputs.param_override} autoComplete='new-password' - className="!rounded-lg font-mono" />
@@ -1109,7 +1075,6 @@ const EditChannel = (props) => { placeholder={t('请输入组织org-xxx')} onChange={(value) => handleInputChange('openai_organization', value)} value={inputs.openai_organization} - className="!rounded-lg" /> {t('组织,可选,不填则为默认组织')} @@ -1142,7 +1107,6 @@ const EditChannel = (props) => { autosize value={inputs.status_code_mapping} autoComplete='new-password' - className="!rounded-lg font-mono" /> { @@ -348,7 +346,7 @@ const SettingsAPIInfo = ({ options, refresh }) => { loading={loading} disabled={!hasChanges} type='secondary' - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" > {t('保存设置')} @@ -430,7 +428,7 @@ const SettingsAPIInfo = ({ options, refresh }) => { style={{ padding: 30 }} /> } - className="rounded-xl overflow-hidden" + className="overflow-hidden" /> @@ -441,7 +439,6 @@ const SettingsAPIInfo = ({ options, refresh }) => { onCancel={() => setShowApiModal(false)} okText={t('保存')} cancelText={t('取消')} - className="rounded-xl" confirmLoading={modalLoading} >
@@ -495,7 +492,6 @@ const SettingsAPIInfo = ({ options, refresh }) => { okText={t('确认删除')} cancelText={t('取消')} type="warning" - className="rounded-xl" okButtonProps={{ type: 'danger', theme: 'solid' diff --git a/web/src/pages/Setting/Dashboard/SettingsAnnouncements.js b/web/src/pages/Setting/Dashboard/SettingsAnnouncements.js index 427edcc9..f81a8c2f 100644 --- a/web/src/pages/Setting/Dashboard/SettingsAnnouncements.js +++ b/web/src/pages/Setting/Dashboard/SettingsAnnouncements.js @@ -155,7 +155,6 @@ const SettingsAnnouncements = ({ options, refresh }) => { theme='light' type='tertiary' size='small' - className="!rounded-full" onClick={() => handleEditAnnouncement(record)} > {t('编辑')} @@ -165,7 +164,6 @@ const SettingsAnnouncements = ({ options, refresh }) => { type='danger' theme='light' size='small' - className="!rounded-full" onClick={() => handleDeleteAnnouncement(record)} > {t('删除')} @@ -365,7 +363,7 @@ const SettingsAnnouncements = ({ options, refresh }) => { theme='light' type='primary' icon={} - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" onClick={handleAddAnnouncement} > {t('添加公告')} @@ -376,7 +374,7 @@ const SettingsAnnouncements = ({ options, refresh }) => { theme='light' onClick={handleBatchDelete} disabled={selectedRowKeys.length === 0} - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" > {t('批量删除')} {selectedRowKeys.length > 0 && `(${selectedRowKeys.length})`} @@ -386,7 +384,7 @@ const SettingsAnnouncements = ({ options, refresh }) => { loading={loading} disabled={!hasChanges} type='secondary' - className="!rounded-full w-full md:w-auto" + className="w-full md:w-auto" > {t('保存设置')} @@ -471,7 +469,7 @@ const SettingsAnnouncements = ({ options, refresh }) => { style={{ padding: 30 }} /> } - className="rounded-xl overflow-hidden" + className="overflow-hidden" /> @@ -482,7 +480,6 @@ const SettingsAnnouncements = ({ options, refresh }) => { onCancel={() => setShowAnnouncementModal(false)} okText={t('保存')} cancelText={t('取消')} - className="rounded-xl" confirmLoading={modalLoading} > { okText={t('确认删除')} cancelText={t('取消')} type="warning" - className="rounded-xl" okButtonProps={{ type: 'danger', theme: 'solid' @@ -566,7 +562,6 @@ const SettingsAnnouncements = ({ options, refresh }) => { onCancel={() => setShowContentModal(false)} okText={t('确定')} cancelText={t('取消')} - className="rounded-xl" width={800} >