全局中文化

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
+14 -17
View File
@@ -2,27 +2,27 @@
<div class="ctms-page">
<div class="ctms-page-header">
<div>
<h1 class="ctms-page-title">项目详情</h1>
<h1 class="ctms-page-title">{{ TEXT.modules.adminProjects.detailTitle }}</h1>
</div>
<div class="ctms-page-actions">
<el-button type="primary" @click="enterProject" :disabled="!project">进入项目</el-button>
<el-button @click="goMembers" :disabled="!project">项目成员配置</el-button>
<el-button @click="goSites" :disabled="!project">中心管理</el-button>
<el-button type="primary" @click="enterProject" :disabled="!project">{{ TEXT.modules.adminProjects.enter }}</el-button>
<el-button @click="goMembers" :disabled="!project">{{ TEXT.modules.adminProjects.members }}</el-button>
<el-button @click="goSites" :disabled="!project">{{ TEXT.modules.adminProjects.sites }}</el-button>
</div>
</div>
<el-card class="ctms-section-card">
<template #header>
<div>
<div class="ctms-section-title">项目基本信息</div>
<div class="ctms-section-title">{{ TEXT.modules.adminProjects.basicInfo }}</div>
</div>
</template>
<el-descriptions v-if="project" :column="2" border class="detail-descriptions">
<el-descriptions-item label="项目编号">{{ project.code }}</el-descriptions-item>
<el-descriptions-item label="项目名称">{{ project.name }}</el-descriptions-item>
<el-descriptions-item label="申办方">{{ project.sponsor || "—" }}</el-descriptions-item>
<el-descriptions-item label="状态">{{ statusLabel(project.status) }}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{ displayDateTime(project.created_at) }}</el-descriptions-item>
<el-descriptions-item :label="TEXT.common.fields.projectCode">{{ project.code }}</el-descriptions-item>
<el-descriptions-item :label="TEXT.common.fields.projectName">{{ project.name }}</el-descriptions-item>
<el-descriptions-item :label="TEXT.common.fields.sponsor">{{ project.sponsor || TEXT.common.fallback }}</el-descriptions-item>
<el-descriptions-item :label="TEXT.common.fields.status">{{ statusLabel(project.status) }}</el-descriptions-item>
<el-descriptions-item :label="TEXT.modules.adminProjects.createdAt">{{ displayDateTime(project.created_at) }}</el-descriptions-item>
</el-descriptions>
<StateLoading v-else :rows="4" />
</el-card>
@@ -30,7 +30,7 @@
<el-card class="ctms-section-card">
<template #header>
<div>
<div class="ctms-section-title">项目通用文件</div>
<div class="ctms-section-title">{{ TEXT.modules.adminProjects.filesTitle }}</div>
</div>
</template>
<AttachmentList
@@ -55,6 +55,7 @@ import AttachmentList from "../../components/attachments/AttachmentList.vue";
import StateLoading from "../../components/StateLoading.vue";
import { useStudyStore } from "../../store/study";
import { displayDateTime } from "../../utils/display";
import { TEXT } from "../../locales";
const route = useRoute();
const router = useRouter();
@@ -67,16 +68,12 @@ const loadProject = async () => {
const { data } = await fetchStudyDetail(route.params.projectId as string);
project.value = data as Study;
} catch (e: any) {
ElMessage.error(e?.response?.data?.message || "项目加载失败");
ElMessage.error(e?.response?.data?.message || TEXT.modules.adminProjects.loadFailed);
}
};
const statusLabel = (status: string) =>
({
DRAFT: "草稿",
ACTIVE: "进行中",
CLOSED: "已关闭",
}[status] || status);
TEXT.enums.projectStatus[status as keyof typeof TEXT.enums.projectStatus] || status;
const enterProject = () => {
if (!project.value) return;