diff --git a/src/renderer/src/pages/Sign/Forget.tsx b/src/renderer/src/pages/Sign/Forget.tsx
index 4c1f4ca..1cbc871 100644
--- a/src/renderer/src/pages/Sign/Forget.tsx
+++ b/src/renderer/src/pages/Sign/Forget.tsx
@@ -155,8 +155,8 @@ const Forget = () => {
>
}
- placeholder={'邮箱'}
disabled={isSending}
+ placeholder={'邮箱'}
/>
@@ -199,6 +199,7 @@ const Forget = () => {
name={'password'}
rules={[
{ required: true, message: '请输入密码' },
+ { whitespace: true, message: '密码不能为空字符' },
{ min: 10, message: '密码至少为10位' },
{ max: 30, message: '密码最多为30位' }
]}
@@ -208,8 +209,8 @@ const Forget = () => {
addonBefore={
新 密 码
}
- placeholder={'密码'}
disabled={isChanging}
+ placeholder={'密码'}
/>
{
diff --git a/src/renderer/src/pages/Sign/SignIn.tsx b/src/renderer/src/pages/Sign/SignIn.tsx
index b81bc4d..be500bd 100644
--- a/src/renderer/src/pages/Sign/SignIn.tsx
+++ b/src/renderer/src/pages/Sign/SignIn.tsx
@@ -124,6 +124,7 @@ const SignIn = () => {
form={twoFactorForm}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('twoFactorCode').focus()
}, 50)
}}
@@ -132,7 +133,7 @@ const SignIn = () => {
name={'twoFactorCode'}
label={'验证码'}
style={{ marginTop: 10 }}
- rules={[{ required: true, len: 6 }]}
+ rules={[{ required: true, whitespace: true, len: 6 }]}
>
{
}
- placeholder={'邮箱/用户名'}
disabled={isSigningIn}
+ placeholder={'邮箱/用户名'}
/>
}
- placeholder={'密码'}
disabled={isSigningIn}
+ placeholder={'密码'}
/>
diff --git a/src/renderer/src/pages/Sign/SignUp.tsx b/src/renderer/src/pages/Sign/SignUp.tsx
index 99d6db4..b1c8b41 100644
--- a/src/renderer/src/pages/Sign/SignUp.tsx
+++ b/src/renderer/src/pages/Sign/SignUp.tsx
@@ -139,6 +139,7 @@ const SignUp = () => {
name={'username'}
rules={[
{ required: true, message: '请输入用户名' },
+ { whitespace: true, message: '用户名不能为空字符' },
{
pattern: /^[a-zA-Z-_][0-9a-zA-Z-_]{2,38}$/,
message:
@@ -148,10 +149,10 @@ const SignUp = () => {
>
}
- placeholder={'用户名'}
maxLength={39}
showCount={true}
disabled={isSigningUp}
+ placeholder={'用户名'}
/>
{
}
- placeholder={'邮箱'}
disabled={isSigningUp}
+ placeholder={'邮箱'}
/>
{
}
- placeholder={'密码'}
disabled={isSigningUp}
+ placeholder={'密码'}
/>
{
}
- placeholder={'确认密码'}
disabled={isSigningUp}
+ placeholder={'确认密码'}
/>
diff --git a/src/renderer/src/pages/Sign/Verify.tsx b/src/renderer/src/pages/Sign/Verify.tsx
index 26efe94..006b72d 100644
--- a/src/renderer/src/pages/Sign/Verify.tsx
+++ b/src/renderer/src/pages/Sign/Verify.tsx
@@ -195,6 +195,7 @@ const Verify = () => {
name={'nickname'}
rules={[
{ required: true, message: '请输入昵称' },
+ { whitespace: true, message: '昵称不能为空字符' },
{ min: 3, message: '昵称至少为3个字符' }
]}
>
diff --git a/src/renderer/src/pages/System/Group.tsx b/src/renderer/src/pages/System/Group.tsx
index 15bdbe7..f248ffb 100644
--- a/src/renderer/src/pages/System/Group.tsx
+++ b/src/renderer/src/pages/System/Group.tsx
@@ -190,8 +190,9 @@ const Group = () => {
const handleOnListDeleteBtnClick = () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除选中的 ${tableSelectedItem.length} 个用户组吗?`
})
.then(
@@ -243,8 +244,9 @@ const Group = () => {
return () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除角色 ${value.name} 吗?`
})
.then(
@@ -543,6 +545,7 @@ const Group = () => {
onChange={handleOnSearchNameChange}
onKeyDown={handleOnSearchNameKeyDown}
status={isRegexLegal ? undefined : 'error'}
+ placeholder={'请输入搜索内容'}
/>
@@ -597,7 +600,7 @@ const Group = () => {
const addAndEditForm = (
-
+
{
label={'名称'}
rules={[{ required: true, whitespace: true }]}
>
-
+
{
value: value.id,
label: `${value.name}${!value.enable ? '(已禁用)' : ''}`
}))}
+ placeholder={'请选择角色'}
/>
{
value={searchRequestUrl}
onChange={handleOnSearchUrlChange}
onKeyDown={handleOnSearchUrlKeyDown}
+ placeholder={'请输入搜索内容'}
/>
diff --git a/src/renderer/src/pages/System/Role.tsx b/src/renderer/src/pages/System/Role.tsx
index 570beb2..ce4e5e7 100644
--- a/src/renderer/src/pages/System/Role.tsx
+++ b/src/renderer/src/pages/System/Role.tsx
@@ -182,8 +182,9 @@ const Role = () => {
const handleOnListDeleteBtnClick = () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除选中的 ${tableSelectedItem.length} 个角色吗?`
})
.then(
@@ -235,8 +236,9 @@ const Role = () => {
return () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除角色 ${value.name} 吗?`
})
.then(
@@ -552,6 +554,7 @@ const Role = () => {
onChange={handleOnSearchNameChange}
onKeyDown={handleOnSearchNameKeyDown}
status={isRegexLegal ? undefined : 'error'}
+ placeholder={'请输入搜索内容'}
/>
@@ -606,7 +609,7 @@ const Role = () => {
const addAndEditForm = (
-
+
{
label={'名称'}
rules={[{ required: true, whitespace: true }]}
>
-
+
{
allowClear
treeNodeFilterProp={'fullTitle'}
loading={isLoadingPower}
+ placeholder={'请选择权限'}
/>
{
disabled={!hasPermission('system:settings:modify:base')}
>
-
+
-
+
-
+
-
+
diff --git a/src/renderer/src/pages/System/Settings/Mail.tsx b/src/renderer/src/pages/System/Settings/Mail.tsx
index 898581e..22d0222 100644
--- a/src/renderer/src/pages/System/Settings/Mail.tsx
+++ b/src/renderer/src/pages/System/Settings/Mail.tsx
@@ -31,6 +31,7 @@ const Mail = () => {
form={mailSendForm}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('to').focus()
}, 50)
}}
@@ -41,7 +42,7 @@ const Mail = () => {
style={{ marginTop: 10 }}
rules={[{ required: true, type: 'email' }]}
>
-
+
@@ -134,29 +135,34 @@ const Mail = () => {
disabled={!hasPermission('system:settings:modify:mail')}
>
-
+
-
-
+
+
-
+
None
SSL/TLS
StartTls
-
+
-
+
-
+
-
+
diff --git a/src/renderer/src/pages/System/Settings/SensitiveWord.tsx b/src/renderer/src/pages/System/Settings/SensitiveWord.tsx
index 7284f54..7b738a3 100644
--- a/src/renderer/src/pages/System/Settings/SensitiveWord.tsx
+++ b/src/renderer/src/pages/System/Settings/SensitiveWord.tsx
@@ -153,7 +153,8 @@ const SensitiveWord = () => {
}
- >
+ placeholder={'请输入敏感词'}
+ />
>
)
diff --git a/src/renderer/src/pages/System/Settings/TwoFactor.tsx b/src/renderer/src/pages/System/Settings/TwoFactor.tsx
index a94e8fc..7d93d61 100644
--- a/src/renderer/src/pages/System/Settings/TwoFactor.tsx
+++ b/src/renderer/src/pages/System/Settings/TwoFactor.tsx
@@ -59,10 +59,15 @@ const TwoFactor = () => {
disabled={!hasPermission('system:settings:modify:two-factor')}
>
-
+
-
+
diff --git a/src/renderer/src/pages/System/Tools/Base.tsx b/src/renderer/src/pages/System/Tools/Base.tsx
index 528a107..d68e248 100644
--- a/src/renderer/src/pages/System/Tools/Base.tsx
+++ b/src/renderer/src/pages/System/Tools/Base.tsx
@@ -279,9 +279,9 @@ const Base = () => {
compileForm.setFieldValue('entryFileName', undefined)
void modal.confirm({
- title: '编译',
centered: true,
maskClosable: true,
+ title: '编译',
footer: (_, { OkBtn, CancelBtn }) => (
<>
@@ -295,7 +295,7 @@ const Base = () => {
name={'entryFileName'}
label={'入口文件'}
style={{ marginTop: 10 }}
- rules={[{ required: true, message: '请选择入口文件' }]}
+ rules={[{ required: true }]}
>
{
].includes(value)
)
.map((value) => ({ value, label: value }))}
+ placeholder={'请选择入口文件'}
/>
@@ -428,8 +429,9 @@ const Base = () => {
return () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除基板 ${value.name} 吗?`
})
.then(
@@ -609,9 +611,9 @@ const Base = () => {
const handleOnAddFile = () => {
void modal.confirm({
- title: '新建文件',
centered: true,
maskClosable: true,
+ title: '新建文件',
footer: (_, { OkBtn, CancelBtn }) => (
<>
@@ -623,6 +625,7 @@ const Base = () => {
form={addFileForm}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('fileName').focus()
}, 50)
}}
@@ -652,7 +655,7 @@ const Base = () => {
})
]}
>
-
+
),
@@ -800,9 +803,9 @@ const Base = () => {
return () => {
renameFileForm.setFieldValue('fileName', fileName)
void modal.confirm({
- title: '重命名文件',
centered: true,
maskClosable: true,
+ title: '重命名文件',
footer: (_, { OkBtn, CancelBtn }) => (
<>
@@ -814,6 +817,7 @@ const Base = () => {
form={renameFileForm}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('fileName').focus()
}, 50)
}}
@@ -846,7 +850,7 @@ const Base = () => {
})
]}
>
-
+
),
@@ -915,8 +919,9 @@ const Base = () => {
return () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除文件 ${fileName} 吗?`
})
.then(
@@ -1040,7 +1045,7 @@ const Base = () => {
const addAndEditForm = (
-
+
{
label={'名称'}
rules={[{ required: true, whitespace: true }]}
>
-
+
{
rules={[{ required: true }]}
hidden={isDrawerEdit}
>
-
+
Web
Desktop
Android
diff --git a/src/renderer/src/pages/System/Tools/Category.tsx b/src/renderer/src/pages/System/Tools/Category.tsx
index 68dc276..60652af 100644
--- a/src/renderer/src/pages/System/Tools/Category.tsx
+++ b/src/renderer/src/pages/System/Tools/Category.tsx
@@ -121,8 +121,9 @@ const Category = () => {
return () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除类别 ${value.name} 吗?`
})
.then(
@@ -266,7 +267,7 @@ const Category = () => {
const addAndEditForm = (
-
+
{
label={'名称'}
rules={[{ required: true, whitespace: true }]}
>
-
+
diff --git a/src/renderer/src/pages/System/Tools/Code.tsx b/src/renderer/src/pages/System/Tools/Code.tsx
index 3a2a286..a02e109 100644
--- a/src/renderer/src/pages/System/Tools/Code.tsx
+++ b/src/renderer/src/pages/System/Tools/Code.tsx
@@ -12,6 +12,7 @@ import Card from '@/components/common/Card'
const Code = () => {
const navigate = useNavigate()
+ const [modal, contextHolder] = AntdModal.useModal()
const { id } = useParams()
const [loading, setLoading] = useState(false)
const [files, setFiles] = useState({})
@@ -20,7 +21,15 @@ const Code = () => {
const handleOnRunTool = () => {
if (checkDesktop() || platform !== 'DESKTOP') {
- navigate(`/system/tools/execute/${id}`)
+ void modal.confirm({
+ centered: true,
+ maskClosable: true,
+ title: '注意',
+ content: '运行前请仔细查阅工具代码!',
+ onOk: () => {
+ navigate(`/system/tools/execute/${id}`)
+ }
+ })
} else {
void message.warning('此应用需要桌面端环境,请在桌面端运行')
}
@@ -71,26 +80,29 @@ const Code = () => {
}, [])
return (
-
-
-
-
-
-
-
-
}
- onClick={handleOnRunTool}
+ <>
+
+
+
-
-
-
+
+
+
+
+
}
+ onClick={handleOnRunTool}
+ />
+
+
+
+ {contextHolder}
+ >
)
}
diff --git a/src/renderer/src/pages/System/Tools/Template.tsx b/src/renderer/src/pages/System/Tools/Template.tsx
index 97a4457..332a158 100644
--- a/src/renderer/src/pages/System/Tools/Template.tsx
+++ b/src/renderer/src/pages/System/Tools/Template.tsx
@@ -276,8 +276,9 @@ const Template = () => {
return () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除模板 ${value.name} 吗?`
})
.then(
@@ -464,9 +465,9 @@ const Template = () => {
const handleOnAddFile = () => {
void modal.confirm({
- title: '新建文件',
centered: true,
maskClosable: true,
+ title: '新建文件',
footer: (_, { OkBtn, CancelBtn }) => (
<>
@@ -478,6 +479,7 @@ const Template = () => {
form={addFileForm}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('fileName').focus()
}, 50)
}}
@@ -507,7 +509,7 @@ const Template = () => {
})
]}
>
-
+
),
@@ -658,9 +660,9 @@ const Template = () => {
return () => {
renameFileForm.setFieldValue('fileName', fileName)
void modal.confirm({
- title: '重命名文件',
centered: true,
maskClosable: true,
+ title: '重命名文件',
footer: (_, { OkBtn, CancelBtn }) => (
<>
@@ -672,6 +674,7 @@ const Template = () => {
form={renameFileForm}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('fileName').focus()
}, 50)
}}
@@ -704,7 +707,7 @@ const Template = () => {
})
]}
>
-
+
),
@@ -773,8 +776,9 @@ const Template = () => {
return () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除文件 ${fileName} 吗?`
})
.then(
@@ -979,7 +983,7 @@ const Template = () => {
const addAndEditForm = (
-
+
{
label={'名称'}
rules={[{ required: true, whitespace: true }]}
>
-
+
{
label={'基板'}
rules={[{ required: true }]}
>
-
+
-
-
+
+
diff --git a/src/renderer/src/pages/System/Tools/index.tsx b/src/renderer/src/pages/System/Tools/index.tsx
index 72b1b82..03c62c8 100644
--- a/src/renderer/src/pages/System/Tools/index.tsx
+++ b/src/renderer/src/pages/System/Tools/index.tsx
@@ -56,7 +56,7 @@ const Tools = () => {
}}
+ preview={{ mask: }}
src={`data:image/svg+xml;base64,${value}`}
alt={'Avatar'}
/>
@@ -206,9 +206,9 @@ const Tools = () => {
return () => {
form.setFieldValue('pass', undefined)
void modal.confirm({
- title: '审核',
centered: true,
maskClosable: true,
+ title: '审核',
footer: (_, { OkBtn, CancelBtn }) => (
<>
@@ -354,8 +354,9 @@ const Tools = () => {
return () => {
modal
.confirm({
- title: '确定下架',
+ centered: true,
maskClosable: true,
+ title: '确定下架',
content: `确定下架工具 ${value.author.username}:${value.toolId}:${value.ver} 吗?`
})
.then(
@@ -389,8 +390,9 @@ const Tools = () => {
return () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除工具 ${value.author.username}:${value.toolId}:${value.platform.slice(0, 1)}${value.platform.slice(1).toLowerCase()}:${value.ver} 吗?`
})
.then(
@@ -554,6 +556,7 @@ const Tools = () => {
onChange={handleOnSearchValueChange}
onKeyDown={handleOnSearchValueKeyDown}
status={isRegexLegal ? undefined : 'error'}
+ placeholder={'请输入搜索内容'}
/>
diff --git a/src/renderer/src/pages/System/User.tsx b/src/renderer/src/pages/System/User.tsx
index 5facab6..9b67fb1 100644
--- a/src/renderer/src/pages/System/User.tsx
+++ b/src/renderer/src/pages/System/User.tsx
@@ -88,7 +88,7 @@ const User = () => {
}}
+ preview={{ mask: }}
src={`data:image/png;base64,${value}`}
alt={'Avatar'}
/>
@@ -285,8 +285,9 @@ const User = () => {
const handleOnListDeleteBtnClick = () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除选中的 ${tableSelectedItem.length} 个用户吗?`
})
.then(
@@ -326,6 +327,8 @@ const User = () => {
value.credentialsExpiration && isPastTime(value.credentialsExpiration)
)
void modal.confirm({
+ centered: true,
+ maskClosable: true,
icon: <>>,
title: (
<>
@@ -336,8 +339,6 @@ const User = () => {
修改用户 {value.username} 的密码
>
),
- centered: true,
- maskClosable: true,
footer: (_, { OkBtn, CancelBtn }) => (
<>
@@ -352,23 +353,17 @@ const User = () => {
wrapperCol={{ span: 18 }}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('password').focus()
}, 50)
}}
>
-
-
-
-
+
{
})
]}
>
-
+
{value.id !== '0' && (
{
return () => {
modal
.confirm({
- title: '确定删除',
+ centered: true,
maskClosable: true,
+ title: '确定删除',
content: `确定删除用户 ${value.username} 吗?`
})
.then(
@@ -800,7 +796,7 @@ const User = () => {
-
+
{
label={'用户名'}
rules={[{ required: true, whitespace: true }]}
>
-
+
{!isDrawerEdit && (
<>
@@ -817,7 +813,7 @@ const User = () => {
label={'密码'}
rules={[{ required: true, whitespace: true }]}
>
-
+
>
)}
@@ -826,14 +822,14 @@ const User = () => {
label={'昵称'}
rules={[{ required: true, whitespace: true }]}
>
-
+
-
+
{formValues?.id !== '0' && (
<>
@@ -847,6 +843,7 @@ const User = () => {
value: value.id,
label: `${value.name}${!value.enable ? '(已禁用)' : ''}`
}))}
+ placeholder={'请选择角色'}
/>
@@ -859,6 +856,7 @@ const User = () => {
value: value.id,
label: `${value.name}${!value.enable ? '(已禁用)' : ''}`
}))}
+ placeholder={'请选择用户组'}
/>
@@ -957,6 +955,7 @@ const User = () => {
onChange={handleOnSearchValueChange}
onKeyDown={handleOnSearchValueKeyDown}
status={isRegexLegal ? undefined : 'error'}
+ placeholder={'请输入搜索内容'}
/>
diff --git a/src/renderer/src/pages/Tools/Create.tsx b/src/renderer/src/pages/Tools/Create.tsx
index ae2db82..afb36f9 100644
--- a/src/renderer/src/pages/Tools/Create.tsx
+++ b/src/renderer/src/pages/Tools/Create.tsx
@@ -241,7 +241,7 @@ const Create = () => {
{
label={'工具 ID'}
name={'toolId'}
rules={[
- { required: true },
+ { required: true, whitespace: true },
{
pattern: /^[a-zA-Z-_][0-9a-zA-Z-_]{2,19}$/,
message:
@@ -270,11 +270,11 @@ const Create = () => {
Web
@@ -297,7 +297,7 @@ const Create = () => {
label={'版本'}
name={'ver'}
rules={[
- { required: true },
+ { required: true, whitespace: true },
{
pattern: /^\d+\.\d+\.\d+$/,
message: `格式必须为 '<数字>.<数字>.<数字>', eg. 1.0.3`
@@ -313,10 +313,9 @@ const Create = () => {
({
value: value.id,
label: value.name
@@ -324,28 +323,28 @@ const Create = () => {
loading={loadingTemplate}
disabled={loadingTemplate}
onChange={handleOnTemplateChange}
+ placeholder={'请选择模板'}
/>
({
value: value.id,
@@ -353,6 +352,7 @@ const Create = () => {
}))}
loading={loadingCategory}
disabled={loadingCategory}
+ placeholder={'请选择类别'}
/>
diff --git a/src/renderer/src/pages/Tools/Edit.tsx b/src/renderer/src/pages/Tools/Edit.tsx
index 1a2267b..ccb7fb9 100644
--- a/src/renderer/src/pages/Tools/Edit.tsx
+++ b/src/renderer/src/pages/Tools/Edit.tsx
@@ -369,7 +369,11 @@ const Edit = () => {
-
+
@@ -384,18 +388,17 @@ const Edit = () => {
label={'关键字'}
tooltip={'工具搜索(每个不超过10个字符)'}
name={'keywords'}
- rules={[{ required: true, message: '请输入关键字' }]}
+ rules={[{ required: true, whitespace: true }]}
>
-
+
({
value: value.id,
@@ -403,6 +406,7 @@ const Edit = () => {
}))}
loading={loadingCategory}
disabled={loadingCategory}
+ placeholder={'请选择类别'}
/>
diff --git a/src/renderer/src/pages/Tools/Store.tsx b/src/renderer/src/pages/Tools/Store.tsx
index 0e11024..f3837d0 100644
--- a/src/renderer/src/pages/Tools/Store.tsx
+++ b/src/renderer/src/pages/Tools/Store.tsx
@@ -331,11 +331,11 @@ const Store = () => {
>
diff --git a/src/renderer/src/pages/Tools/index.tsx b/src/renderer/src/pages/Tools/index.tsx
index 8671178..ee81c29 100644
--- a/src/renderer/src/pages/Tools/index.tsx
+++ b/src/renderer/src/pages/Tools/index.tsx
@@ -348,6 +348,7 @@ const Tools = () => {
form={upgradeForm}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('toolId').focus()
}, 50)
}}
@@ -376,7 +377,7 @@ const Tools = () => {
name={'ver'}
label={'版本'}
rules={[
- { required: true },
+ { required: true, whitespace: true },
{
pattern: /^\d+\.\d+\.\d+$/,
message: `格式必须为 '<数字>.<数字>.<数字>', eg. 1.0.3`
diff --git a/src/renderer/src/pages/User/index.tsx b/src/renderer/src/pages/User/index.tsx
index 23c4671..7cf28a2 100644
--- a/src/renderer/src/pages/User/index.tsx
+++ b/src/renderer/src/pages/User/index.tsx
@@ -115,6 +115,7 @@ const User = () => {
wrapperCol={{ span: 18 }}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('originalPassword').focus()
}, 50)
}}
@@ -123,7 +124,7 @@ const User = () => {
name={'originalPassword'}
label={'原密码'}
labelAlign={'right'}
- rules={[{ required: true, message: '请输入原密码' }]}
+ rules={[{ required: true, whitespace: true }]}
>
@@ -132,7 +133,7 @@ const User = () => {
label={'新密码'}
labelAlign={'right'}
rules={[
- { required: true, message: '请输入新密码' },
+ { required: true, whitespace: true },
{ min: 10, message: '密码至少为10位' },
{ max: 30, message: '密码最多为30位' }
]}
@@ -144,7 +145,7 @@ const User = () => {
label={'确认密码'}
labelAlign={'right'}
rules={[
- { required: true, message: '请确认密码' },
+ { required: true },
({ getFieldValue }) => ({
validator(_, value) {
if (!value || getFieldValue('newPassword') === value) {
@@ -247,6 +248,7 @@ const User = () => {
form={twoFactorForm}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('twoFactorCode').focus()
}, 50)
}}
@@ -255,12 +257,13 @@ const User = () => {
name={'twoFactorCode'}
label={'验证码'}
style={{ marginTop: 10 }}
- rules={[{ required: true, len: 6 }]}
+ rules={[{ required: true, whitespace: true, len: 6 }]}
>
@@ -334,6 +337,7 @@ const User = () => {
form={twoFactorForm}
ref={(ref) => {
setTimeout(() => {
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
ref?.getFieldInstance('twoFactorCode').focus()
}, 50)
}}
@@ -342,12 +346,15 @@ const User = () => {
name={'twoFactorCode'}
label={'验证码'}
style={{ marginTop: 10, marginRight: 30 }}
- rules={[{ required: true, len: 6 }]}
+ rules={[
+ { required: true, whitespace: true, len: 6 }
+ ]}
>
@@ -410,6 +417,7 @@ const User = () => {
setAvatar(userWithPowerInfoVo.userInfo.avatar)
form.setFieldValue('nickname', userWithPowerInfoVo.userInfo.nickname)
setUserWithPowerInfoVo(userWithPowerInfoVo)
+ void form.validateFields()
})
.finally(() => {
setIsLoading(false)
@@ -509,7 +517,7 @@ const User = () => {
{
maxLength={20}
showCount
disabled={isLoading}
+ placeholder={'请输入昵称'}
/>