全局中文化

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
+21 -20
View File
@@ -1,24 +1,24 @@
<template>
<el-dialog :title="site ? '编辑中心' : '新建中心'" width="520px" v-model="visibleProxy" :close-on-click-modal="false">
<el-dialog :title="site ? TEXT.modules.adminSites.editTitle : TEXT.modules.adminSites.newTitle" width="520px" v-model="visibleProxy" :close-on-click-modal="false">
<el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="中心名称" prop="name">
<el-input v-model="form.name" placeholder="请输入中心名称" />
<el-form-item :label="TEXT.common.fields.siteName" prop="name">
<el-input v-model="form.name" :placeholder="TEXT.common.placeholders.input + TEXT.common.fields.siteName" />
</el-form-item>
<el-form-item label="城市" prop="city">
<el-input v-model="form.city" placeholder="所在城市(可选)" />
<el-form-item :label="TEXT.common.fields.city" prop="city">
<el-input v-model="form.city" :placeholder="TEXT.modules.adminSites.cityPlaceholder" />
</el-form-item>
<el-form-item label="PI" prop="pi_name">
<el-input v-model="form.pi_name" placeholder="PI(可选)" />
<el-form-item :label="TEXT.modules.adminSites.piLabel" prop="pi_name">
<el-input v-model="form.pi_name" :placeholder="TEXT.modules.adminSites.piPlaceholder" />
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-input v-model="form.phone" placeholder="电话(可选)" />
<el-form-item :label="TEXT.common.fields.phone" prop="phone">
<el-input v-model="form.phone" :placeholder="TEXT.modules.adminSites.phonePlaceholder" />
</el-form-item>
<el-form-item label="负责人" prop="contact">
<el-form-item :label="TEXT.common.fields.contact" prop="contact">
<el-select
v-model="form.craSelections"
multiple
filterable
placeholder="选择项目成员作为负责人,可多选"
:placeholder="TEXT.modules.adminSites.contactPlaceholder"
>
<el-option
v-for="user in craOptions"
@@ -28,13 +28,13 @@
/>
</el-select>
</el-form-item>
<el-form-item v-if="site" label="状态" prop="is_active">
<el-switch v-model="form.is_active" active-text="启用" inactive-text="停用" />
<el-form-item v-if="site" :label="TEXT.common.fields.status" prop="is_active">
<el-switch v-model="form.is_active" :active-text="TEXT.common.actions.enable" :inactive-text="TEXT.common.actions.disable" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="visibleProxy = false">取消</el-button>
<el-button type="primary" :loading="submitting" @click="onSubmit">保存</el-button>
<el-button @click="visibleProxy = false">{{ TEXT.common.actions.cancel }}</el-button>
<el-button type="primary" :loading="submitting" @click="onSubmit">{{ TEXT.common.actions.save }}</el-button>
</template>
</el-dialog>
</template>
@@ -47,6 +47,7 @@ import type { Site } from "../../types/api";
import { useAuthStore } from "../../store/auth";
import { evaluateAction } from "../../guards/actionGuard";
import { logAudit } from "../../audit";
import { TEXT, requiredMessage } from "../../locales";
const props = defineProps<{
visible: boolean;
@@ -80,7 +81,7 @@ const form = reactive({
});
const rules = reactive<FormRules>({
name: [{ required: true, message: "请输入中心名称", trigger: "blur" }],
name: [{ required: true, message: requiredMessage(TEXT.common.fields.siteName), trigger: "blur" }],
});
const craOptions = computed(() => {
@@ -138,7 +139,7 @@ const onSubmit = async () => {
target: { siteId: props.site?.id, studyId: props.studyId },
});
if (!decision.allowed) {
ElMessage.warning(decision.reason || "无权限执行该操作");
ElMessage.warning(decision.reason || TEXT.common.messages.noPermission);
logAudit(decision.auditType, {
targetId: props.site?.id || props.studyId,
targetName: props.site?.name,
@@ -159,7 +160,7 @@ const onSubmit = async () => {
contact,
is_active: form.is_active,
});
ElMessage.success("中心已更新");
ElMessage.success(TEXT.modules.adminSites.updateSuccess);
logAudit("SITE_STATUS_CHANGED", {
targetId: props.site.id,
targetName: props.site.name,
@@ -173,7 +174,7 @@ const onSubmit = async () => {
pi_name: form.pi_name,
contact,
});
ElMessage.success("中心已创建");
ElMessage.success(TEXT.modules.adminSites.createSuccess);
logAudit("SITE_STATUS_CHANGED", {
targetId: props.studyId,
targetName: form.name,
@@ -184,7 +185,7 @@ const onSubmit = async () => {
emit("saved");
visibleProxy.value = false;
} catch (e: any) {
ElMessage.error(e?.response?.data?.message || "保存失败");
ElMessage.error(e?.response?.data?.message || TEXT.common.messages.saveFailed);
logAudit("SITE_STATUS_CHANGED", {
targetId: props.site?.id || props.studyId,
targetName: props.site?.name || form.name,