Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
2026-06-29 13:13:23 +08:00
6 changed files with 343 additions and 146 deletions

View File

@@ -729,6 +729,7 @@
"import": "Import",
"detail": "Detail",
"view": "View",
"sequence": "Sequence",
"operation": "Operation",
"status": "Status",
"enabled": "Enabled",

View File

@@ -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",

View File

@@ -729,6 +729,7 @@
"import": "导入",
"detail": "详情",
"view": "查看",
"sequence": "序号",
"operation": "操作",
"status": "状态",
"enabled": "启用",
@@ -1885,6 +1886,123 @@
"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": "签名",
"id": "序号",
"urgentShort": "急",
"urgent": "紧急",
"applicationNo": "申请单号",
"patientName": "患者姓名",
"consultationDate": "会诊时间",
"invitedObject": "邀请对象",
"applyDept": "申请科室",
"applyPhysician": "申请医师",
"applyDoctor": "申请医生",
"applyTime": "申请时间",
"submit": "提交",
"end": "结束",
"operation": "操作",
"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 +4310,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 +4490,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": "请输入项目名称/拼音码/编码",

View File

@@ -216,23 +216,23 @@
align="center"
/>
<vxe-column
title="ID"
:title="$t('consultationMgmt.confirm.id')"
align="center"
field="id"
/>
<vxe-column
title=""
:title="$t('consultationMgmt.confirm.urgentShort')"
align="center"
field="consultationUrgency"
:formatter="urgentFormatter"
/>
<vxe-column
title="申请单号"
:title="$t('consultationMgmt.confirm.applicationNo')"
align="center"
field="consultationId"
/>
<vxe-column
title="会诊时间"
:title="$t('consultationMgmt.confirm.consultationDate')"
align="center"
field="consultationDate"
width="180"
@@ -242,22 +242,22 @@
</template>
</vxe-column>
<vxe-column
title="邀请对象"
:title="$t('consultationMgmt.confirm.invitedObject')"
align="center"
field="invitedObject"
/>
<vxe-column
title="申请科室"
:title="$t('consultationMgmt.confirm.applyDept')"
align="center"
field="department"
/>
<vxe-column
title="申请医师"
:title="$t('consultationMgmt.confirm.applyPhysician')"
align="center"
field="requestingPhysician"
/>
<vxe-column
title="申请时间"
:title="$t('consultationMgmt.confirm.applyTime')"
align="center"
field="consultationRequestDate"
width="180"
@@ -267,7 +267,7 @@
</template>
</vxe-column>
<vxe-column
title="提交"
:title="$t('consultationMgmt.confirm.submit')"
align="center"
field="consultationStatus"
>
@@ -283,7 +283,7 @@
</template>
</vxe-column>
<vxe-column
title="结束"
:title="$t('consultationMgmt.confirm.end')"
align="center"
field="consultationStatus"
>
@@ -299,7 +299,7 @@
</template>
</vxe-column>
<vxe-column
title="操作"
:title="$t('consultationMgmt.confirm.operation')"
align="center"
class-name="small-padding fixed-width"
>
@@ -835,4 +835,4 @@ function cancel() {
}
getList();
</script>
</script>

View File

@@ -2,7 +2,7 @@
<div class="consultation-application-container">
<!-- 页面标题 -->
<div class="page-header">
<span class="tab-title">{{ $t('consultation.application.title') }}</span>
<span class="tab-title">{{ $t('consultationMgmt.application.title') }}</span>
</div>
<!-- 查询条件 -->
@@ -11,122 +11,122 @@
:model="queryParams"
inline
>
<el-form-item :label="$t('consultation.application.timeType')">
<el-form-item :label="$t('consultationMgmt.application.timeType')">
<el-select
v-model="queryParams.timeType"
:placeholder="$t('common.pleaseSelect')"
style="width: 120px"
>
<el-option
:label="$t('consultation.application.consultationTime')"
:label="$t('consultationMgmt.application.consultationTime')"
value="consultation"
/>
<el-option
:label="$t('consultation.application.applyTime')"
:label="$t('consultationMgmt.application.applyTime')"
value="request"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('consultation.application.startTime')">
<el-form-item :label="$t('consultationMgmt.application.startTime')">
<el-date-picker
v-model="queryParams.startTime"
type="datetime"
:placeholder="$t('consultation.application.datePlaceholder')"
:placeholder="$t('consultationMgmt.application.datePlaceholder')"
format="YYYY/MM/DD HH:mm"
value-format="YYYY-MM-DD HH:mm:ss"
style="width: 180px"
/>
</el-form-item>
<el-form-item :label="$t('consultation.application.endTime')">
<el-form-item :label="$t('consultationMgmt.application.endTime')">
<el-date-picker
v-model="queryParams.endTime"
type="datetime"
:placeholder="$t('consultation.application.datePlaceholder')"
:placeholder="$t('consultationMgmt.application.datePlaceholder')"
format="YYYY/MM/DD HH:mm"
value-format="YYYY-MM-DD HH:mm:ss"
style="width: 180px"
/>
</el-form-item>
<el-form-item :label="$t('consultation.application.applyDept')">
<el-form-item :label="$t('consultationMgmt.application.applyDept')">
<el-input
v-model="queryParams.applyDept"
:placeholder="$t('consultation.application.placeholderDept')"
:placeholder="$t('consultationMgmt.application.placeholderDept')"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item :label="$t('consultation.application.applyDoctor')">
<el-form-item :label="$t('consultationMgmt.application.applyDoctor')">
<el-input
v-model="queryParams.applyDoctor"
:placeholder="$t('consultation.application.placeholderDoctor')"
:placeholder="$t('consultationMgmt.application.placeholderDoctor')"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item :label="$t('consultation.application.urgency')">
<el-form-item :label="$t('consultationMgmt.application.urgency')">
<el-select
v-model="queryParams.urgency"
:placeholder="$t('consultation.application.all')"
:placeholder="$t('consultationMgmt.application.all')"
style="width: 120px"
>
<el-option
:label="$t('consultation.application.all')"
:label="$t('consultationMgmt.application.all')"
value=""
/>
<el-option
:label="$t('consultation.application.urgencyNormal')"
:label="$t('consultationMgmt.application.urgencyNormal')"
value="1"
/>
<el-option
:label="$t('consultation.application.urgencyUrgent')"
:label="$t('consultationMgmt.application.urgencyUrgent')"
value="2"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('consultation.application.status')">
<el-form-item :label="$t('consultationMgmt.application.status')">
<el-select
v-model="queryParams.consultationStatus"
:placeholder="$t('consultation.application.all')"
:placeholder="$t('consultationMgmt.application.all')"
style="width: 120px"
>
<el-option
:label="$t('consultation.application.all')"
:label="$t('consultationMgmt.application.all')"
value=""
/>
<el-option
:label="$t('consultation.application.statusNotSubmitted')"
:label="$t('consultationMgmt.application.statusNotSubmitted')"
value="0"
/>
<el-option
:label="$t('consultation.application.statusSubmitted')"
:label="$t('consultationMgmt.application.statusSubmitted')"
value="10"
/>
<el-option
:label="$t('consultation.application.statusEnded')"
:label="$t('consultationMgmt.application.statusEnded')"
value="40"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('consultation.application.patientName')">
<el-form-item :label="$t('consultationMgmt.application.patientName')">
<el-input
v-model="queryParams.patientName"
:placeholder="$t('consultation.application.placeholderPatientName')"
:placeholder="$t('consultationMgmt.application.placeholderPatientName')"
clearable
style="width: 150px"
/>
</el-form-item>
<el-form-item :label="$t('consultation.application.consultationId')">
<el-form-item :label="$t('consultationMgmt.application.consultationId')">
<el-input
v-model="queryParams.consultationId"
:placeholder="$t('consultation.application.placeholderConsultationId')"
:placeholder="$t('consultationMgmt.application.placeholderConsultationId')"
clearable
style="width: 180px"
/>
@@ -146,7 +146,7 @@
type="success"
@click="handlePrint"
>
<el-icon><Printer /></el-icon> {{ $t('consultation.application.print') }}
<el-icon><Printer /></el-icon> {{ $t('consultationMgmt.application.print') }}
</el-button>
</el-form-item>
</el-form>
@@ -171,7 +171,7 @@
show-overflow="title"
/>
<vxe-column
:title="$t('consultation.application.urgentShort')"
:title="$t('consultationMgmt.application.urgentShort')"
width="60"
align="center"
>
@@ -184,12 +184,12 @@
</vxe-column>
<vxe-column
field="patientName"
:title="$t('consultation.application.patientName')"
:title="$t('consultationMgmt.application.patientName')"
min-width="100"
/>
<vxe-column
field="consultationDate"
:title="$t('consultation.application.colConsultationTime')"
:title="$t('consultationMgmt.application.colConsultationTime')"
min-width="160"
>
<template #default="scope">
@@ -198,18 +198,18 @@
</vxe-column>
<vxe-column
field="department"
:title="$t('consultation.application.applyDept')"
:title="$t('consultationMgmt.application.applyDept')"
min-width="120"
/>
<vxe-column
field="invitedObject"
:title="$t('consultation.application.invitedObject')"
:title="$t('consultationMgmt.application.invitedObject')"
min-width="150"
show-overflow="title"
/>
<vxe-column
field="consultationRequestDate"
:title="$t('consultation.application.colApplyTime')"
:title="$t('consultationMgmt.application.colApplyTime')"
min-width="160"
>
<template #default="scope">
@@ -218,11 +218,11 @@
</vxe-column>
<vxe-column
field="requestingPhysician"
:title="$t('consultation.application.colApplyDoctor')"
:title="$t('consultationMgmt.application.colApplyDoctor')"
min-width="100"
/>
<vxe-column
:title="$t('consultation.application.colSubmitted')"
:title="$t('consultationMgmt.application.colSubmitted')"
width="70"
align="center"
>
@@ -234,7 +234,7 @@
</template>
</vxe-column>
<vxe-column
:title="$t('consultation.application.colEnded')"
:title="$t('consultationMgmt.application.colEnded')"
width="70"
align="center"
>
@@ -256,7 +256,7 @@
type="success"
size="small"
:icon="Printer"
:title="$t('consultation.application.print')"
:title="$t('consultationMgmt.application.print')"
@click="handlePrint(scope.row)"
/>
<el-button
@@ -279,7 +279,7 @@
size="small"
:icon="Delete"
:disabled="scope.row.consultationStatus >= STATUS.CONFIRMED"
:title="$t('consultation.application.void')"
:title="$t('consultationMgmt.application.void')"
@click="handleDelete(scope.row)"
/>
</template>
@@ -318,7 +318,7 @@
>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item :label="$t('consultation.application.applicationNo')">
<el-form-item :label="$t('consultationMgmt.application.applicationNo')">
<el-input
v-model="formData.consultationId"
disabled
@@ -326,7 +326,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('consultation.application.formApplyTime')">
<el-form-item :label="$t('consultationMgmt.application.formApplyTime')">
<el-input
:model-value="formatDate(formData.consultationRequestDate)"
disabled
@@ -337,7 +337,7 @@
<el-row :gutter="16">
<el-col :span="12">
<el-form-item :label="$t('consultation.application.patientName')">
<el-form-item :label="$t('consultationMgmt.application.patientName')">
<el-input
v-model="formData.patientName"
disabled
@@ -364,7 +364,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('consultation.application.cardNo')">
<el-form-item :label="$t('consultationMgmt.application.cardNo')">
<el-input
v-model="formData.patientIdentifierNo"
disabled
@@ -376,7 +376,7 @@
<el-row :gutter="16">
<el-col :span="12">
<el-form-item
:label="$t('consultation.application.formApplyDoctor')"
:label="$t('consultationMgmt.application.formApplyDoctor')"
prop="requestingPhysician"
>
<el-input v-model="formData.requestingPhysician" />
@@ -384,13 +384,13 @@
</el-col>
<el-col :span="12">
<el-form-item
:label="$t('consultation.application.formConsultationTime')"
:label="$t('consultationMgmt.application.formConsultationTime')"
prop="consultationDate"
>
<el-date-picker
v-model="formData.consultationDate"
type="datetime"
:placeholder="$t('consultation.application.datePlaceholder')"
:placeholder="$t('consultationMgmt.application.datePlaceholder')"
format="YYYY/MM/DD HH:mm"
value-format="YYYY-MM-DD HH:mm:ss"
style="width: 100%"
@@ -401,7 +401,7 @@
<el-row :gutter="16">
<el-col :span="12">
<el-form-item :label="$t('consultation.application.applyDept')">
<el-form-item :label="$t('consultationMgmt.application.applyDept')">
<el-input
v-model="formData.department"
disabled
@@ -409,11 +409,11 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('consultation.application.urgency')">
<el-form-item :label="$t('consultationMgmt.application.urgency')">
<el-checkbox
v-model="formData.isUrgent"
>
{{ $t('consultation.application.urgentCheckbox') }}
{{ $t('consultationMgmt.application.urgentCheckbox') }}
</el-checkbox>
</el-form-item>
</el-col>
@@ -421,27 +421,27 @@
<el-row :gutter="16">
<el-col :span="12">
<el-form-item :label="$t('consultation.application.diagnosis')">
<el-form-item :label="$t('consultationMgmt.application.diagnosis')">
<el-input v-model="formData.provisionalDiagnosis" />
</el-form-item>
</el-col>
</el-row>
<el-form-item
:label="$t('consultation.application.purpose')"
:label="$t('consultationMgmt.application.purpose')"
prop="consultationPurpose"
>
<el-input
v-model="formData.consultationPurpose"
type="textarea"
:rows="4"
:placeholder="$t('consultation.application.placeholderPurpose')"
:placeholder="$t('consultationMgmt.application.placeholderPurpose')"
/>
</el-form-item>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item :label="$t('consultation.application.formInvitedObject')">
<el-form-item :label="$t('consultationMgmt.application.formInvitedObject')">
<el-input
v-model="formData.invitedObject"
disabled
@@ -449,7 +449,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('consultation.application.confirmingPhysician')">
<el-form-item :label="$t('consultationMgmt.application.confirmingPhysician')">
<el-input
v-model="formData.confirmingPhysician"
disabled
@@ -459,21 +459,21 @@
</el-row>
<div class="section-title">
{{ $t('consultation.application.recordSection') }}
{{ $t('consultationMgmt.application.recordSection') }}
</div>
<el-form-item :label="$t('consultation.application.opinion')">
<el-form-item :label="$t('consultationMgmt.application.opinion')">
<el-input
v-model="formData.consultationOpinion"
type="textarea"
:rows="4"
:placeholder="$t('consultation.application.opinion')"
:placeholder="$t('consultationMgmt.application.opinion')"
disabled
/>
</el-form-item>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item :label="$t('consultation.application.attendingDoctor')">
<el-form-item :label="$t('consultationMgmt.application.attendingDoctor')">
<el-input
v-model="formData.attendingPhysician"
disabled
@@ -481,7 +481,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('consultation.application.representDept')">
<el-form-item :label="$t('consultationMgmt.application.representDept')">
<el-input
v-model="formData.representDepartment"
disabled
@@ -492,7 +492,7 @@
<el-row :gutter="16">
<el-col :span="12">
<el-form-item :label="$t('consultation.application.signDoctor')">
<el-form-item :label="$t('consultationMgmt.application.signDoctor')">
<el-input
v-model="formData.signPhysician"
disabled
@@ -500,11 +500,11 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="$t('consultation.application.signTime')">
<el-form-item :label="$t('consultationMgmt.application.signTime')">
<el-date-picker
v-model="formData.signTime"
type="datetime"
:placeholder="$t('consultation.application.datePlaceholder')"
:placeholder="$t('consultationMgmt.application.datePlaceholder')"
format="YYYY/MM/DD HH:mm"
disabled
style="width: 100%"
@@ -657,18 +657,18 @@ const formData = ref(getInitialFormData())
const formRules = computed(() => ({
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 = []

View File

@@ -1,7 +1,7 @@
<template>
<div class="app-container consultation-confirmation">
<div class="page-header">
<span class="tab-title">{{ $t('consultation.confirm.title') }}</span>
<span class="tab-title">{{ $t('consultationMgmt.confirm.title') }}</span>
</div>
<div class="action-bar no-print">
@@ -9,7 +9,7 @@
type="success"
@click="handlePrint"
>
{{ $t('consultation.confirm.print') }}
{{ $t('consultationMgmt.confirm.print') }}
</el-button>
<el-button @click="handleRefresh">
{{ $t('common.refresh') }}
@@ -26,7 +26,7 @@
:disabled="!canSign"
@click="handleSign"
>
{{ $t('consultation.confirm.sign') }}
{{ $t('consultationMgmt.confirm.sign') }}
</el-button>
</div>
@@ -46,7 +46,7 @@
align="center"
/>
<vxe-column
:title="$t('consultation.confirm.urgent')"
:title="$t('consultationMgmt.confirm.urgent')"
width="70"
align="center"
>
@@ -59,17 +59,17 @@
</vxe-column>
<vxe-column
field="consultationId"
:title="$t('consultation.confirm.applicationNo')"
:title="$t('consultationMgmt.confirm.applicationNo')"
min-width="160"
/>
<vxe-column
field="patientName"
:title="$t('consultation.confirm.patientName')"
:title="$t('consultationMgmt.confirm.patientName')"
min-width="100"
/>
<vxe-column
field="consultationDate"
:title="$t('consultation.confirm.consultationDate')"
:title="$t('consultationMgmt.confirm.consultationDate')"
min-width="160"
>
<template #default="scope">
@@ -78,22 +78,22 @@
</vxe-column>
<vxe-column
field="invitedObject"
:title="$t('consultation.confirm.invitedObject')"
:title="$t('consultationMgmt.confirm.invitedObject')"
min-width="120"
/>
<vxe-column
field="applyDept"
:title="$t('consultation.confirm.applyDept')"
:title="$t('consultationMgmt.confirm.applyDept')"
min-width="120"
/>
<vxe-column
field="applyDoctor"
:title="$t('consultation.confirm.applyDoctor')"
:title="$t('consultationMgmt.confirm.applyDoctor')"
min-width="120"
/>
<vxe-column
field="applyTime"
:title="$t('consultation.confirm.applyTime')"
:title="$t('consultationMgmt.confirm.applyTime')"
min-width="160"
>
<template #default="scope">
@@ -101,7 +101,7 @@
</template>
</vxe-column>
<vxe-column
:title="$t('consultation.confirm.confirm')"
:title="$t('consultationMgmt.confirm.confirm')"
width="70"
align="center"
>
@@ -113,7 +113,7 @@
</template>
</vxe-column>
<vxe-column
:title="$t('consultation.confirm.signColumn')"
:title="$t('consultationMgmt.confirm.signColumn')"
width="70"
align="center"
>
@@ -129,7 +129,7 @@
<div class="form-section">
<div class="section-title">
{{ $t('consultation.confirm.recordSheet') }}
{{ $t('consultationMgmt.confirm.recordSheet') }}
</div>
<el-form
:model="formData"
@@ -137,7 +137,7 @@
>
<el-row :gutter="16">
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.patientName')">
<el-form-item :label="$t('consultationMgmt.confirm.patientName')">
<el-input
v-model="formData.patientName"
disabled
@@ -161,7 +161,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.cardNo')">
<el-form-item :label="$t('consultationMgmt.confirm.cardNo')">
<el-input
v-model="formData.patientIdentifierNo"
disabled
@@ -169,7 +169,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.applicationNo')">
<el-form-item :label="$t('consultationMgmt.confirm.applicationNo')">
<el-input
v-model="formData.consultationId"
disabled
@@ -177,7 +177,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.applyDept')">
<el-form-item :label="$t('consultationMgmt.confirm.applyDept')">
<el-input
v-model="formData.applyDept"
disabled
@@ -185,7 +185,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.consultationDate')">
<el-form-item :label="$t('consultationMgmt.confirm.consultationDate')">
<el-input
:model-value="formatDateTime(formData.consultationDate)"
disabled
@@ -193,7 +193,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.urgentFlag')">
<el-form-item :label="$t('consultationMgmt.confirm.urgentFlag')">
<el-input
:model-value="formData.urgent ? t('common.yes') : t('common.no')"
disabled
@@ -201,7 +201,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.invitedObjectLabel')">
<el-form-item :label="$t('consultationMgmt.confirm.invitedObjectLabel')">
<el-input
v-model="formData.invitedObject"
disabled
@@ -209,7 +209,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.submittingDoctor')">
<el-form-item :label="$t('consultationMgmt.confirm.submittingDoctor')">
<el-input
v-model="formData.submittingPhysician"
disabled
@@ -217,7 +217,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.submittingTime')">
<el-form-item :label="$t('consultationMgmt.confirm.submittingTime')">
<el-input
:model-value="formatDateTime(formData.submittingTime)"
disabled
@@ -226,7 +226,7 @@
</el-col>
</el-row>
<el-form-item :label="$t('consultation.confirm.consultationPurpose')">
<el-form-item :label="$t('consultationMgmt.confirm.consultationPurpose')">
<el-input
v-model="formData.consultationPurpose"
type="textarea"
@@ -235,7 +235,7 @@
/>
</el-form-item>
<el-form-item :label="$t('consultation.confirm.diagnosis')">
<el-form-item :label="$t('consultationMgmt.confirm.diagnosis')">
<el-input
v-model="formData.provisionalDiagnosis"
type="textarea"
@@ -245,33 +245,33 @@
</el-form-item>
<el-form-item
:label="$t('consultation.confirm.confirmingPhysician')"
:label="$t('consultationMgmt.confirm.confirmingPhysician')"
required
>
<el-input
v-model="formData.confirmingPhysician"
type="textarea"
:rows="3"
:placeholder="$t('consultation.confirm.placeholderPhysician')"
:placeholder="$t('consultationMgmt.confirm.placeholderPhysician')"
:disabled="!canEdit"
/>
</el-form-item>
<el-form-item
:label="$t('consultation.confirm.opinion')"
:label="$t('consultationMgmt.confirm.opinion')"
required
>
<el-input
v-model="formData.consultationOpinion"
type="textarea"
:rows="4"
:placeholder="$t('consultation.confirm.placeholderOpinion')"
:placeholder="$t('consultationMgmt.confirm.placeholderOpinion')"
:disabled="!canEdit"
/>
</el-form-item>
<!-- 会诊意见列表 -->
<el-form-item :label="$t('consultation.confirm.allOpinions')">
<el-form-item :label="$t('consultationMgmt.confirm.allOpinions')">
<div class="opinions-container">
<el-timeline v-if="opinionList.length > 0">
<el-timeline-item
@@ -294,14 +294,14 @@
type="success"
size="small"
>
<el-icon><Check /></el-icon> {{ $t('consultation.confirm.signed') }}
<el-icon><Check /></el-icon> {{ $t('consultationMgmt.confirm.signed') }}
</el-tag>
<el-tag
v-else
type="warning"
size="small"
>
{{ $t('consultation.confirm.confirmed') }}
{{ $t('consultationMgmt.confirm.confirmed') }}
</el-tag>
</div>
<div class="opinion-content">
@@ -311,14 +311,14 @@
v-if="opinion.signatureTime"
class="opinion-footer"
>
{{ $t('consultation.confirm.signatureTime') }}{{ formatDateTime(opinion.signatureTime) }}
{{ $t('consultationMgmt.confirm.signatureTime') }}{{ formatDateTime(opinion.signatureTime) }}
</div>
</el-card>
</el-timeline-item>
</el-timeline>
<el-empty
v-else
:description="$t('consultation.confirm.noOpinions')"
:description="$t('consultationMgmt.confirm.noOpinions')"
:image-size="80"
/>
</div>
@@ -326,7 +326,7 @@
<el-row :gutter="16">
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.attendingDoctor')">
<el-form-item :label="$t('consultationMgmt.confirm.attendingDoctor')">
<el-input
v-model="formData.confirmingPhysicianName"
disabled
@@ -334,7 +334,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.representDept')">
<el-form-item :label="$t('consultationMgmt.confirm.representDept')">
<el-input
v-model="formData.confirmingDeptName"
disabled
@@ -342,7 +342,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="$t('consultation.confirm.signDoctor')">
<el-form-item :label="$t('consultationMgmt.confirm.signDoctor')">
<el-input
v-model="formData.signature"
disabled