From a0696d382c0e0f0fe49c82f9b129cbe711999a91 Mon Sep 17 00:00:00 2001
From: wangjian963 <15215920+aprilry@user.noreply.gitee.com>
Date: Mon, 29 Jun 2026 11:52:03 +0800
Subject: [PATCH 1/2] =?UTF-8?q?i18n:=20=E5=AE=8C=E5=96=84=E4=BC=9A?=
=?UTF-8?q?=E8=AF=8A=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97=E7=9A=84=E4=B8=AD?=
=?UTF-8?q?=E6=96=87=E5=9B=BD=E9=99=85=E5=8C=96=E6=96=87=E6=A1=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
1. 新增会诊申请和会诊确认的全量中文翻译词条
2. 将页面内的国际化引用从旧的consultation路径切换到新的consultationMgmt路径
3. 同步更新了原有医嘱相关的国际化文案为中文
---
healthlink-his-ui/src/i18n/locales/zhCN.json | 214 ++++++++++++++++--
.../consultationapplication/index.vue | 168 +++++++-------
.../consultationconfirmation/index.vue | 74 +++---
3 files changed, 322 insertions(+), 134 deletions(-)
diff --git a/healthlink-his-ui/src/i18n/locales/zhCN.json b/healthlink-his-ui/src/i18n/locales/zhCN.json
index 1fdf05e55..1a4eb2593 100644
--- a/healthlink-his-ui/src/i18n/locales/zhCN.json
+++ b/healthlink-his-ui/src/i18n/locales/zhCN.json
@@ -1885,6 +1885,117 @@
"valPhoneRequired": "联系电话不能为空",
"other": "其他"
},
+ "consultationMgmt": {
+ "application": {
+ "title": "会诊申请",
+ "timeType": "时间类型",
+ "consultationTime": "会诊时间",
+ "applyTime": "申请时间",
+ "startTime": "开始时间",
+ "endTime": "结束时间",
+ "datePlaceholder": "请选择日期时间",
+ "applyDept": "申请科室",
+ "placeholderDept": "请输入科室",
+ "applyDoctor": "申请医生",
+ "placeholderDoctor": "请输入医生",
+ "urgency": "紧急程度",
+ "all": "全部",
+ "urgencyNormal": "普通",
+ "urgencyUrgent": "紧急",
+ "status": "状态",
+ "statusNotSubmitted": "未提交",
+ "statusSubmitted": "已提交",
+ "statusEnded": "已结束",
+ "patientName": "患者姓名",
+ "placeholderPatientName": "请输入患者姓名",
+ "consultationId": "会诊申请单号",
+ "placeholderConsultationId": "请输入会诊申请单号",
+ "print": "打印",
+ "urgentShort": "急",
+ "colConsultationTime": "会诊时间",
+ "invitedObject": "邀请对象",
+ "colApplyTime": "申请时间",
+ "colApplyDoctor": "申请医生",
+ "colSubmitted": "提交",
+ "colEnded": "结束",
+ "void": "作废",
+ "applicationNo": "申请单号",
+ "formApplyTime": "申请时间",
+ "cardNo": "证件号",
+ "formApplyDoctor": "申请医生",
+ "formConsultationTime": "会诊时间",
+ "urgentCheckbox": "紧急",
+ "diagnosis": "诊断",
+ "purpose": "会诊目的",
+ "placeholderPurpose": "请输入会诊目的",
+ "formInvitedObject": "邀请对象",
+ "confirmingPhysician": "会诊确认参加医师",
+ "recordSection": "会诊记录",
+ "opinion": "会诊意见",
+ "attendingDoctor": "参加医师",
+ "representDept": "代表科室",
+ "signDoctor": "签名医生",
+ "signTime": "签名时间",
+ "valApplyDoctor": "请填写申请医生",
+ "valConsultationTime": "请选择会诊时间",
+ "valPurpose": "请填写会诊目的",
+ "viewTitle": "查看会诊申请",
+ "editTitle": "编辑会诊申请",
+ "printTitle": "会诊申请单",
+ "msg": {
+ "endBeforeStart": "结束时间不能早于开始时间",
+ "noPrintData": "暂无可打印数据",
+ "printFailed": "打印失败",
+ "endedNotEditable": "已结束的会诊申请不可编辑",
+ "saveSuccess": "保存成功",
+ "saveFailed": "保存失败",
+ "confirmedNotVoidable": "已确认/已签名状态的会诊申请不可作废",
+ "voidConfirm": "确定要作废这条会诊申请吗?",
+ "userVoid": "用户作废",
+ "voidSuccess": "作废成功",
+ "voidFailed": "作废失败",
+ "noResults": "未查询到会诊申请",
+ "loadDataFailed": "加载会诊申请失败",
+ "networkError": "网络异常",
+ "loadDataFailedWithMsg": "加载会诊申请失败:"
+ }
+ },
+ "confirm": {
+ "title": "会诊确认",
+ "print": "打印",
+ "sign": "签名",
+ "urgent": "紧急",
+ "applicationNo": "申请单号",
+ "patientName": "患者姓名",
+ "consultationDate": "会诊时间",
+ "invitedObject": "邀请对象",
+ "applyDept": "申请科室",
+ "applyDoctor": "申请医生",
+ "applyTime": "申请时间",
+ "confirm": "确认",
+ "signColumn": "签名",
+ "recordSheet": "会诊记录单",
+ "cardNo": "证件号",
+ "urgentFlag": "紧急标志",
+ "invitedObjectLabel": "邀请对象",
+ "submittingDoctor": "提交医生",
+ "submittingTime": "提交时间",
+ "consultationPurpose": "会诊目的",
+ "diagnosis": "诊断",
+ "confirmingPhysician": "会诊确认参加医师",
+ "placeholderPhysician": "请输入会诊确认参加医师",
+ "opinion": "会诊意见",
+ "placeholderOpinion": "请输入会诊意见",
+ "allOpinions": "全部会诊意见",
+ "signed": "已签名",
+ "confirmed": "已确认",
+ "signatureTime": "签名时间:",
+ "noOpinions": "暂无会诊意见",
+ "attendingDoctor": "参加医师",
+ "representDept": "代表科室",
+ "signDoctor": "签名医生"
+ }
+ },
"doctorstation": {
"currentPatients": "现诊患者",
"openCallQueue": "点击打开叫号界面",
@@ -4192,18 +4303,18 @@
"groupCountExceeded": "分组\"{group}\"数量超出限制",
"groupAmountExceeded": "分组\"{group}\"金额总和超出限制"
},
- "natureOfCost": "Nature of Cost",
- "orderType": "Order Type",
- "orderStatus": "Order Status",
- "order": "Order",
- "pleaseSelectItem": "Please select item",
- "totalQty": "Total Qty",
- "pharmacyDept": "Pharmacy/Dept",
- "freqUsage": "Freq/Usage",
- "diagnosisCol": "Diagnosis",
- "stopOrderConfirm": "Stop Order Confirm",
- "stopOrderTimeLabel": "Stop Order Time",
- "pleaseSelectStopTime": "Please select stop time"
+ "natureOfCost": "费用性质",
+ "orderType": "医嘱类型",
+ "orderStatus": "医嘱状态",
+ "order": "医嘱",
+ "pleaseSelectItem": "请选择项目",
+ "totalQty": "总量",
+ "pharmacyDept": "药房/科室",
+ "freqUsage": "频次/用法",
+ "diagnosisCol": "诊断",
+ "stopOrderConfirm": "停嘱确认",
+ "stopOrderTimeLabel": "停嘱时间",
+ "pleaseSelectStopTime": "请选择停嘱时间"
},
"diagnosis": {
"addDiagnosis": "新增诊断",
@@ -4372,7 +4483,84 @@
"print": "打印",
"reportReady": "报告已就绪",
"requestFormId": "申请单ID",
- "noMatchRecord": "未匹配到记录"
+ "noMatchRecord": "未匹配到记录",
+ "applicationFormStatus": "申请单状态",
+ "prescriptionNo": "申请单号",
+ "examineApplication": "检查申请",
+ "bloodTransfusion": "输血申请",
+ "examineApplicationDetail": "检查申请详情",
+ "bloodTransfusionDetail": "输血申请详情",
+ "editExamineApplication": "编辑检查申请",
+ "examineKeywordPlaceholder": "请输入患者姓名/就诊号/申请单号",
+ "received": "已接收",
+ "examined": "已检查",
+ "reportIssued": "已出报告",
+ "reportInfo": "报告信息",
+ "reportTime": "报告时间",
+ "diagnosisOpinion": "诊断意见",
+ "reportContent": "报告内容",
+ "imagePreview": "影像预览",
+ "openPacs": "打开PACS",
+ "clickPacsButton": "请点击按钮打开PACS",
+ "noReportData": "暂无报告数据",
+ "reportNotGenerated": "报告未生成",
+ "categoryType": "项目类别",
+ "targetDepartment": "目标科室",
+ "urgencyLevel": "紧急程度",
+ "allergyHistory": "过敏史",
+ "examinationPurpose": "检查目的",
+ "expectedExaminationTime": "预计检查时间",
+ "medicalHistorySummary": "病史摘要",
+ "allergyConfirmed": "过敏史确认",
+ "symptom": "症状",
+ "sign": "体征",
+ "clinicalDiagnosis": "临床诊断",
+ "otherDiagnosis": "其他诊断",
+ "relatedResult": "相关结果",
+ "attention": "注意事项",
+ "urgent": "急诊",
+ "normal": "普通",
+ "allergyConfirmedYes": "已确认",
+ "allergyConfirmedNo": "未确认",
+ "confirmDeleteExamine": "确定删除检查申请单“{applyNo}”吗?",
+ "confirmRecallExamine": "确定撤回检查申请单“{applyNo}”吗?",
+ "confirmRecall": "确认撤回",
+ "withdrawSuccess": "撤回成功",
+ "withdrawFailed": "撤回失败",
+ "generatingPrintPreview": "正在生成打印预览",
+ "examineApplicationPrint": "检查申请单",
+ "printTime": "打印时间",
+ "treatmentItems": "诊疗项目",
+ "barcodeVerify": "条码核验",
+ "printFooter": "请妥善保管申请单,并按预约时间检查",
+ "printWindowBlocked": "打印窗口被浏览器拦截",
+ "printFailed": "打印失败",
+ "unknown": "未知",
+ "reportNotReady": "报告未就绪",
+ "getReportFailed": "获取报告失败",
+ "queryBloodFailed": "查询输血申请失败",
+ "queryReportFailed": "查询报告失败",
+ "pleaseSelectPatient": "请先选择患者",
+ "getNursingDataFailed": "获取护理状态失败",
+ "cancelled": "已取消",
+ "nursingOrderSaveSuccess": "护理医嘱保存成功",
+ "saveFailedRetry": "保存失败,请重试",
+ "nursingLevel": "护理级别",
+ "condition": "病情",
+ "nursingRoutine": "护理常规",
+ "diet": "饮食",
+ "position": "体位",
+ "companionCare": "陪护",
+ "isolationLevel": "隔离级别",
+ "none": "无",
+ "noReportLink": "暂无报告链接",
+ "editSuccess": "编辑成功",
+ "queryTestFailed": "查询检验申请失败",
+ "querySurgeryFailed": "查询手术申请失败",
+ "confirmDeleteTest": "确定删除检验申请单“{applyNo}”吗?",
+ "confirmWithdrawTest": "确定撤回检验申请单“{applyNo}”吗?",
+ "confirmDeleteSurgery": "确定删除手术申请单“{applyNo}”吗?",
+ "confirmWithdrawSurgery": "确定撤回手术申请单“{applyNo}”吗?"
},
"applicationForm": {
"searchProjectPlaceholder": "请输入项目名称/拼音码/编码",
diff --git a/healthlink-his-ui/src/views/consultationmanagement/consultationapplication/index.vue b/healthlink-his-ui/src/views/consultationmanagement/consultationapplication/index.vue
index 85041c896..9536270c6 100755
--- a/healthlink-his-ui/src/views/consultationmanagement/consultationapplication/index.vue
+++ b/healthlink-his-ui/src/views/consultationmanagement/consultationapplication/index.vue
@@ -2,7 +2,7 @@
@@ -11,122 +11,122 @@
:model="queryParams"
inline
>
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -146,7 +146,7 @@
type="success"
@click="handlePrint"
>
- {{ $t('consultation.application.print') }}
+ {{ $t('consultationMgmt.application.print') }}
@@ -171,7 +171,7 @@
show-overflow="title"
/>
@@ -184,12 +184,12 @@
@@ -198,18 +198,18 @@
@@ -218,11 +218,11 @@
@@ -234,7 +234,7 @@
@@ -256,7 +256,7 @@
type="success"
size="small"
:icon="Printer"
- :title="$t('consultation.application.print')"
+ :title="$t('consultationMgmt.application.print')"
@click="handlePrint(scope.row)"
/>
@@ -318,7 +318,7 @@
>
-
+
-
+
-
+
-
+
@@ -384,13 +384,13 @@
-
+
-
+
- {{ $t('consultation.application.urgentCheckbox') }}
+ {{ $t('consultationMgmt.application.urgentCheckbox') }}
@@ -421,27 +421,27 @@
-
+
-
+
-
+
- {{ $t('consultation.application.recordSection') }}
+ {{ $t('consultationMgmt.application.recordSection') }}
-
+
-
+
-
+
-
+
-
+
({
requestingPhysician: [
- { required: true, message: t('consultation.application.valApplyDoctor'), trigger: 'blur' }
+ { required: true, message: t('consultationMgmt.application.valApplyDoctor'), trigger: 'blur' }
],
consultationDate: [
- { required: true, message: t('consultation.application.valConsultationTime'), trigger: 'change' }
+ { required: true, message: t('consultationMgmt.application.valConsultationTime'), trigger: 'change' }
],
consultationPurpose: [
- { required: true, message: t('consultation.application.valPurpose'), trigger: 'blur' }
+ { required: true, message: t('consultationMgmt.application.valPurpose'), trigger: 'blur' }
]
}))
const dialogTitle = computed(() => {
- return isViewMode.value ? t('consultation.application.viewTitle') : t('consultation.application.editTitle')
+ return isViewMode.value ? t('consultationMgmt.application.viewTitle') : t('consultationMgmt.application.editTitle')
})
const handleQuery = async () => {
@@ -676,7 +676,7 @@ const handleQuery = async () => {
const start = new Date(queryParams.startTime)
const end = new Date(queryParams.endTime)
if (end < start) {
- ElMessage.warning(t('consultation.application.msg.endBeforeStart'))
+ ElMessage.warning(t('consultationMgmt.application.msg.endBeforeStart'))
return
}
}
@@ -711,7 +711,7 @@ const handleCurrentChange = (val) => {
const handlePrint = async (row) => {
const printRows = row && row.consultationId ? [row] : tableData.value
if (printRows.length === 0) {
- ElMessage.warning(t('consultation.application.msg.noPrintData'))
+ ElMessage.warning(t('consultationMgmt.application.msg.noPrintData'))
return
}
@@ -729,13 +729,13 @@ const handlePrint = async (row) => {
ended: printRow.consultationStatus === STATUS.ENDED ? '√' : ''
}))
await simplePrint(PRINT_TEMPLATE.CONSULTATION, { consultationRows }, undefined, {
- title: t('consultation.application.printTitle'),
+ title: t('consultationMgmt.application.printTitle'),
width: 297,
height: 210
})
} catch (error) {
console.error('会诊申请单打印失败:', error)
- ElMessage.error(t('consultation.application.msg.printFailed'))
+ ElMessage.error(t('consultationMgmt.application.msg.printFailed'))
}
}
@@ -757,7 +757,7 @@ const loadConsultationOpinions = async (consultationId) => {
const openDialog = async (row, viewOnly = false) => {
if (!viewOnly && row.consultationStatus >= STATUS.ENDED) {
- ElMessage.warning(t('consultation.application.msg.endedNotEditable'))
+ ElMessage.warning(t('consultationMgmt.application.msg.endedNotEditable'))
return
}
isViewMode.value = viewOnly
@@ -807,16 +807,16 @@ const handleSave = async () => {
const res = await saveConsultation(submitData)
if (res.code === 200) {
- ElMessage.success(t('consultation.application.msg.saveSuccess'))
+ ElMessage.success(t('consultationMgmt.application.msg.saveSuccess'))
dialogVisible.value = false
await loadData()
} else {
- ElMessage.error(res.msg || t('consultation.application.msg.saveFailed'))
+ ElMessage.error(res.msg || t('consultationMgmt.application.msg.saveFailed'))
}
} catch (error) {
if (error !== 'cancel') {
console.error('保存失败:', error)
- ElMessage.error(t('consultation.application.msg.saveFailed'))
+ ElMessage.error(t('consultationMgmt.application.msg.saveFailed'))
}
} finally {
saving.value = false
@@ -825,30 +825,30 @@ const handleSave = async () => {
const handleDelete = async (row) => {
if (row.consultationStatus >= STATUS.CONFIRMED) {
- ElMessage.warning(t('consultation.application.msg.confirmedNotVoidable'))
+ ElMessage.warning(t('consultationMgmt.application.msg.confirmedNotVoidable'))
return
}
try {
- await ElMessageBox.confirm(t('consultation.application.msg.voidConfirm'), t('common.tip'), {
+ await ElMessageBox.confirm(t('consultationMgmt.application.msg.voidConfirm'), t('common.tip'), {
confirmButtonText: t('common.confirm'),
cancelButtonText: t('common.cancel'),
type: 'warning'
})
loading.value = true
- const res = await cancelConsultation(row.consultationId, t('consultation.application.msg.userVoid'))
+ const res = await cancelConsultation(row.consultationId, t('consultationMgmt.application.msg.userVoid'))
if (res.code === 200) {
- ElMessage.success(t('consultation.application.msg.voidSuccess'))
+ ElMessage.success(t('consultationMgmt.application.msg.voidSuccess'))
await loadData()
} else {
- ElMessage.error(res.msg || t('consultation.application.msg.voidFailed'))
+ ElMessage.error(res.msg || t('consultationMgmt.application.msg.voidFailed'))
}
} catch (error) {
if (error !== 'cancel') {
console.error('作废失败:', error)
- ElMessage.error(t('consultation.application.msg.voidFailed'))
+ ElMessage.error(t('consultationMgmt.application.msg.voidFailed'))
}
} finally {
loading.value = false
@@ -880,11 +880,11 @@ const loadData = async () => {
tableData.value = res.data.records || []
pagination.total = res.data.total || 0
if (tableData.value.length === 0 && pagination.currentPage === 1) {
- ElMessage.info(t('consultation.application.msg.noResults'))
+ ElMessage.info(t('consultationMgmt.application.msg.noResults'))
}
} else {
if (!res.msg || !res.msg.includes('数据正在处理')) {
- ElMessage.error(res.msg || t('consultation.application.msg.loadDataFailed'))
+ ElMessage.error(res.msg || t('consultationMgmt.application.msg.loadDataFailed'))
}
tableData.value = []
pagination.total = 0
@@ -894,9 +894,9 @@ const loadData = async () => {
return
}
- const errorMsg = error.message || error.msg || t('consultation.application.msg.networkError')
+ const errorMsg = error.message || error.msg || t('consultationMgmt.application.msg.networkError')
if (!errorMsg.includes('数据正在处理')) {
- ElMessage.error(t('consultation.application.msg.loadDataFailedWithMsg') + errorMsg)
+ ElMessage.error(t('consultationMgmt.application.msg.loadDataFailedWithMsg') + errorMsg)
}
tableData.value = []
diff --git a/healthlink-his-ui/src/views/consultationmanagement/consultationconfirmation/index.vue b/healthlink-his-ui/src/views/consultationmanagement/consultationconfirmation/index.vue
index 723d80234..6365158a1 100755
--- a/healthlink-his-ui/src/views/consultationmanagement/consultationconfirmation/index.vue
+++ b/healthlink-his-ui/src/views/consultationmanagement/consultationconfirmation/index.vue
@@ -1,7 +1,7 @@
@@ -9,7 +9,7 @@
type="success"
@click="handlePrint"
>
- {{ $t('consultation.confirm.print') }}
+ {{ $t('consultationMgmt.confirm.print') }}
{{ $t('common.refresh') }}
@@ -26,7 +26,7 @@
:disabled="!canSign"
@click="handleSign"
>
- {{ $t('consultation.confirm.sign') }}
+ {{ $t('consultationMgmt.confirm.sign') }}
@@ -46,7 +46,7 @@
align="center"
/>
@@ -59,17 +59,17 @@
@@ -78,22 +78,22 @@
@@ -101,7 +101,7 @@
@@ -113,7 +113,7 @@
@@ -129,7 +129,7 @@
@@ -326,7 +326,7 @@
-
+
-
+
-
+
Date: Mon, 29 Jun 2026 12:08:27 +0800
Subject: [PATCH 2/2] i18n: add missing translation terms and internationalize
consultation confirmation page
1. add sequence translation for viVN, enUS, zhCN locales
2. replace hardcoded table headers in consultation confirmation page with i18n keys
3. add new translation entries for consultation confirmation module
---
healthlink-his-ui/src/i18n/locales/enUS.json | 1 +
healthlink-his-ui/src/i18n/locales/viVN.json | 1 +
healthlink-his-ui/src/i18n/locales/zhCN.json | 7 ++++++
.../consultationconfirmation/index.vue | 24 +++++++++----------
4 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/healthlink-his-ui/src/i18n/locales/enUS.json b/healthlink-his-ui/src/i18n/locales/enUS.json
index fc5c751be..01b20cec7 100644
--- a/healthlink-his-ui/src/i18n/locales/enUS.json
+++ b/healthlink-his-ui/src/i18n/locales/enUS.json
@@ -729,6 +729,7 @@
"import": "Import",
"detail": "Detail",
"view": "View",
+ "sequence": "Sequence",
"operation": "Operation",
"status": "Status",
"enabled": "Enabled",
diff --git a/healthlink-his-ui/src/i18n/locales/viVN.json b/healthlink-his-ui/src/i18n/locales/viVN.json
index 9c79611de..2c5e29ea8 100644
--- a/healthlink-his-ui/src/i18n/locales/viVN.json
+++ b/healthlink-his-ui/src/i18n/locales/viVN.json
@@ -729,6 +729,7 @@
"import": "Nhập",
"detail": "Chi Tiết",
"view": "Xem",
+ "sequence": "STT",
"operation": "Thao Tác",
"status": "Trạng Thái",
"enabled": "Kích Hoạt",
diff --git a/healthlink-his-ui/src/i18n/locales/zhCN.json b/healthlink-his-ui/src/i18n/locales/zhCN.json
index 1a4eb2593..39a6f148d 100644
--- a/healthlink-his-ui/src/i18n/locales/zhCN.json
+++ b/healthlink-his-ui/src/i18n/locales/zhCN.json
@@ -729,6 +729,7 @@
"import": "导入",
"detail": "详情",
"view": "查看",
+ "sequence": "序号",
"operation": "操作",
"status": "状态",
"enabled": "启用",
@@ -1964,14 +1965,20 @@
"title": "会诊确认",
"print": "打印",
"sign": "签名",
+ "id": "序号",
+ "urgentShort": "急",
"urgent": "紧急",
"applicationNo": "申请单号",
"patientName": "患者姓名",
"consultationDate": "会诊时间",
"invitedObject": "邀请对象",
"applyDept": "申请科室",
+ "applyPhysician": "申请医师",
"applyDoctor": "申请医生",
"applyTime": "申请时间",
+ "submit": "提交",
+ "end": "结束",
+ "operation": "操作",
"confirm": "确认",
"signColumn": "签名",
"recordSheet": "会诊记录单",
diff --git a/healthlink-his-ui/src/views/clinicmanagement/consultationconfirmation/index.vue b/healthlink-his-ui/src/views/clinicmanagement/consultationconfirmation/index.vue
index 660b08f04..eb8475055 100755
--- a/healthlink-his-ui/src/views/clinicmanagement/consultationconfirmation/index.vue
+++ b/healthlink-his-ui/src/views/clinicmanagement/consultationconfirmation/index.vue
@@ -216,23 +216,23 @@
align="center"
/>
@@ -283,7 +283,7 @@
@@ -299,7 +299,7 @@
@@ -835,4 +835,4 @@ function cancel() {
}
getList();
-
\ No newline at end of file
+