feat(i18n): 实现门诊增强和门诊财务国际化功能

- 在门诊增强页面添加表格列的国际化标签
- 在门诊增强页面添加操作按钮的国际化文本
- 在门诊财务日结结算页面实现表单字段的国际化
- 在门诊财务日结结算页面实现表格列标题的国际化
- 在门诊财务日结结算页面添加操作按钮的国际化
- 集成 vue-i18n 并在组件中使用国际化方法
- 更新日结详情提示消息为国际化文本
- 实现导出文件名和成功消息的国际化
This commit is contained in:
2026-06-26 16:19:53 +08:00
parent 24dc16b8d1
commit b278ad92b2
2 changed files with 30 additions and 28 deletions

View File

@@ -2,25 +2,25 @@
<div class="app-container">
<el-card shadow="never">
<template #header>
<span class="card-title">日结结算单管理</span>
<span class="card-title">{{ $t('outpatientFinance.dayEndSetTitle') }}</span>
</template>
<el-form
:inline="true"
:model="queryParams"
>
<el-form-item label="结算日期">
<el-form-item :label="$t('outpatientFinance.settleDate')">
<el-date-picker
v-model="queryParams.settleDate"
type="date"
placeholder="选择日期"
:placeholder="$t('outpatientFinance.selectDate')"
value-format="YYYY-MM-DD"
style="width: 160px"
/>
</el-form-item>
<el-form-item label="收费员">
<el-form-item :label="$t('outpatientFinance.cashier')">
<el-input
v-model="queryParams.operatorName"
placeholder="收费员姓名"
:placeholder="$t('outpatientFinance.cashierName')"
clearable
/>
</el-form-item>
@@ -30,14 +30,14 @@
icon="Search"
@click="handleQuery"
>
搜索
{{ $t('common.search') }}
</el-button>
<el-button
type="success"
icon="Download"
@click="handleExport"
>
导出
{{ $t('common.export') }}
</el-button>
</el-form-item>
</el-form>
@@ -48,49 +48,49 @@
>
<vxe-column
type="seq"
title="序号"
:title="$t('outpatientFinance.seq')"
width="60"
/>
<vxe-column
field="settleDate"
title="结算日期"
:title="$t('outpatientFinance.settleDate')"
/>
<vxe-column
field="operatorName"
title="收费员"
:title="$t('outpatientFinance.cashier')"
/>
<vxe-column
field="totalAmount"
title="总金额"
:title="$t('outpatientFinance.totalAmount')"
/>
<vxe-column
field="cashAmount"
title="现金"
:title="$t('outpatientFinance.cash')"
/>
<vxe-column
field="cardAmount"
title="刷卡"
:title="$t('outpatientFinance.card')"
/>
<vxe-column
field="wechatAmount"
title="微信"
:title="$t('outpatientFinance.wechat')"
/>
<vxe-column
field="alipayAmount"
title="支付宝"
:title="$t('outpatientFinance.alipay')"
/>
<vxe-column
field="status"
title="状态"
:title="$t('common.status')"
>
<template #default="{ row }">
<el-tag :type="row.status === '0' ? 'success' : 'info'">
{{ row.status === '0' ? '已结' : '未结' }}
{{ row.status === '0' ? $t('outpatientFinance.settled') : $t('outpatientFinance.unsettled') }}
</el-tag>
</template>
</vxe-column>
<vxe-column
title="操作"
:title="$t('common.operation')"
width="100"
>
<template #default="{ row }">
@@ -99,7 +99,7 @@
link
@click="handleDetail(row)"
>
详情
{{ $t('common.detail') }}
</el-button>
</template>
</vxe-column>
@@ -109,8 +109,10 @@
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { useI18n } from 'vue-i18n'
import { ElMessage } from 'element-plus'
import { getList, exportReport } from './components/api'
const { t } = useI18n()
const queryParams = ref({ settleDate: '', operatorName: '', pageNum: 1, pageSize: 10 })
const tableData = ref([])
const handleQuery = async () => {
@@ -119,7 +121,7 @@ const handleQuery = async () => {
tableData.value = res.data?.records || res.data || []
} catch (e) { tableData.value = [] }
}
const handleDetail = (row) => { ElMessage.info('日结详情') }
const handleDetail = (row) => { ElMessage.info(t('outpatientFinance.dayEndDetail')) }
const handleExport = async () => {
try {
const res = await exportReport(queryParams.value)
@@ -127,9 +129,9 @@ const handleExport = async () => {
const url = window.URL.createObjectURL(blob)
const a = document.createElement('a')
a.href = url
a.download = '日结报表.xlsx'
a.download = t('outpatientFinance.dayEndReport')
a.click()
ElMessage.success('导出成功')
ElMessage.success(t('outpatientFinance.exportSuccess'))
} catch (e) { console.error(e) }
}
onMounted(() => handleQuery())

View File

@@ -287,28 +287,28 @@
/>
<el-table-column
prop="interceptType"
label="拦截类型"
:label="$t('outpatientEnhanced.interceptType')"
width="120"
/>
<el-table-column
prop="severity"
label="严重程度"
:label="$t('outpatientEnhanced.severity')"
width="100"
/>
<el-table-column
prop="message"
label="信息"
:label="$t('outpatientEnhanced.message')"
min-width="200"
show-overflow-tooltip
/>
<el-table-column
prop="doctorName"
label="医生"
:label="$t('outpatientEnhanced.doctor')"
width="90"
/>
<el-table-column
prop="action"
label="处理"
:label="$t('outpatientEnhanced.action')"
width="90"
>
<template #default="{row}">
@@ -316,7 +316,7 @@
:type="row.action==='BLOCKED'?'danger':'warning'"
size="small"
>
{{ row.action==='BLOCKED'?'已拦截':'强制通过' }}
{{ row.action==='BLOCKED'?$t('outpatientEnhanced.blocked'):$t('outpatientEnhanced.forcePass') }}
</el-tag>
</template>
</el-table-column>