全局中文化

This commit is contained in:
Cheng Zhou
2026-01-12 11:14:04 +08:00
parent 9021c7fe2b
commit 1338fa7e2b
103 changed files with 2443 additions and 1533 deletions
+25 -24
View File
@@ -2,8 +2,8 @@
<div class="register-container">
<div class="register-card">
<div class="header">
<h2>创建账号</h2>
<p>提交后需管理员审核通过方可登录</p>
<h2>{{ TEXT.modules.auth.registerTitle }}</h2>
<p>{{ TEXT.modules.auth.registerDesc }}</p>
</div>
<el-form
ref="formRef"
@@ -12,36 +12,36 @@
label-position="top"
@keyup.enter.native="onSubmit"
>
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="name@example.com" autocomplete="email" />
<el-form-item :label="TEXT.modules.auth.emailLabel" prop="email">
<el-input v-model="form.email" :placeholder="TEXT.modules.auth.emailPlaceholder" autocomplete="email" />
</el-form-item>
<el-form-item label="密码" prop="password">
<el-form-item :label="TEXT.modules.auth.passwordLabel" prop="password">
<el-input
v-model="form.password"
type="password"
placeholder="至少 8 位且包含字母与数字"
:placeholder="TEXT.modules.auth.passwordRuleMix"
show-password
autocomplete="new-password"
/>
</el-form-item>
<el-form-item label="确认密码" prop="confirmPassword">
<el-form-item :label="TEXT.modules.auth.confirmPasswordLabel" prop="confirmPassword">
<el-input
v-model="form.confirmPassword"
type="password"
placeholder="再次输入密码"
:placeholder="TEXT.modules.auth.confirmPasswordPlaceholder"
show-password
autocomplete="new-password"
/>
</el-form-item>
<el-form-item label="姓名" prop="full_name">
<el-input v-model="form.full_name" placeholder="请输入姓名" />
<el-form-item :label="TEXT.modules.auth.fullNameLabel" prop="full_name">
<el-input v-model="form.full_name" :placeholder="TEXT.modules.auth.fullNamePlaceholder" />
</el-form-item>
<el-form-item label="部门" prop="department">
<el-input v-model="form.department" placeholder="请输入部门" />
<el-form-item :label="TEXT.modules.auth.departmentLabel" prop="department">
<el-input v-model="form.department" :placeholder="TEXT.modules.auth.departmentPlaceholder" />
</el-form-item>
<div class="actions">
<el-button type="primary" :loading="submitting" @click="onSubmit">提交注册</el-button>
<RouterLink to="/login">已有账号返回登录</RouterLink>
<el-button type="primary" :loading="submitting" @click="onSubmit">{{ TEXT.modules.auth.registerButton }}</el-button>
<RouterLink to="/login">{{ TEXT.modules.auth.backToLogin }}</RouterLink>
</div>
</el-form>
</div>
@@ -55,6 +55,7 @@ import type { FormInstance, FormRules } from "element-plus";
import { ElMessage } from "element-plus";
import { register as apiRegister } from "../api/auth";
import type { RegisterRequest } from "../types/api";
import { TEXT, requiredMessage } from "../locales";
const router = useRouter();
const defaultRole: RegisterRequest["role"] = "CRA";
@@ -72,11 +73,11 @@ const submitting = ref(false);
const passwordRule = {
validator: (_: any, value: string, callback: (err?: Error) => void) => {
if (!value || value.length < 8) {
callback(new Error("密码至少 8 位"));
callback(new Error(TEXT.modules.auth.passwordRuleMin));
return;
}
if (!/[A-Za-z]/.test(value) || !/[0-9]/.test(value)) {
callback(new Error("需包含字母和数字"));
callback(new Error(TEXT.modules.auth.passwordRuleMix));
return;
}
callback();
@@ -86,19 +87,19 @@ const passwordRule = {
const rules: FormRules<typeof form> = {
email: [
{ required: true, message: "请输入邮箱", trigger: "blur" },
{ type: "email", message: "邮箱格式不正确", trigger: "blur" },
{ required: true, message: requiredMessage(TEXT.modules.auth.emailLabel), trigger: "blur" },
{ type: "email", message: TEXT.common.validation.invalidEmail, trigger: "blur" },
],
password: [
{ required: true, message: "请输入密码", trigger: "blur" },
{ required: true, message: requiredMessage(TEXT.modules.auth.passwordLabel), trigger: "blur" },
passwordRule,
],
confirmPassword: [
{ required: true, message: "请确认密码", trigger: "blur" },
{ required: true, message: requiredMessage(TEXT.modules.auth.confirmPasswordLabel), trigger: "blur" },
{
validator: (_: any, value: string, callback: (err?: Error) => void) => {
if (value !== form.password) {
callback(new Error("两次输入的密码不一致"));
callback(new Error(TEXT.modules.auth.passwordMismatch));
} else {
callback();
}
@@ -106,8 +107,8 @@ const rules: FormRules<typeof form> = {
trigger: "blur",
},
],
full_name: [{ required: true, message: "请输入姓名", trigger: "blur" }],
department: [{ required: true, message: "请输入部门", trigger: "blur" }],
full_name: [{ required: true, message: requiredMessage(TEXT.modules.auth.fullNameLabel), trigger: "blur" }],
department: [{ required: true, message: requiredMessage(TEXT.modules.auth.departmentLabel), trigger: "blur" }],
};
const onSubmit = async () => {
@@ -123,7 +124,7 @@ const onSubmit = async () => {
role: defaultRole,
department: form.department,
});
ElMessage.success("注册成功,等待管理员审核");
ElMessage.success(TEXT.modules.auth.registerSuccess);
setTimeout(() => {
router.push("/login");
}, 3000);