Browse Source

feat(i18n): 添加缺失的国际化文本并优化现有实现

- 在en.js和zh-CN.js中添加新的状态列表和错误提示文本
- 将performanceAttribution.vue中的硬编码文本替换为国际化调用
- 优化表格和搜索区域的样式一致性
zhangyong/feature-20260113094820-现金重构
zhangrenyuan 1 month ago
parent
commit
f40b2d619a
  1. 13
      src/components/locales/lang/en.js
  2. 16
      src/components/locales/lang/zh-CN.js
  3. 97
      src/views/moneyManage/financialAccount/performanceAttribution.vue

13
src/components/locales/lang/en.js

@ -368,6 +368,7 @@ export default {
getMarketListFailed: "Get markets failed",
getChartDataFailed: "Get chart data failed",
renderChartFailed: "Chart render failed",
getRegionFailed: "Failed to get region",
// Rate
confirmModify: "Confirm modify?",
pleaseInputRate: "Enter rate",
@ -399,6 +400,8 @@ export default {
noRoleAssigned: "No role assigned",
unknownRole: "Unknown role",
refundSubmitSuccess: "Refund application submitted successfully",
refundConfirmTitle: "Refund Confirmation",
refundConfirmContent: "Are you sure you want to refund order {orderNo}?",
exportError: "Export failed",
},
@ -1066,6 +1069,16 @@ export default {
paymentAsia: "PaymentAsia",
transfer: "E-Transfer",
},
statusList: {
submitted: "Submitted",
pending: "Pending",
passed: "Passed",
recalled: "Recalled",
refunded: "Refunded",
rejected: "Rejected",
inProgress: "In Progress",
received: "Received",
},
unit: "Unit",
year: "Year",
month: "Month",

16
src/components/locales/lang/zh-CN.js

@ -368,6 +368,7 @@ export default {
getMarketListFailed: "获取市场列表失败,请稍后重试",
getChartDataFailed: "获取图表数据失败,请稍后重试",
renderChartFailed: "图表渲染失败,请稍后重试",
getRegionFailed: "获取地区失败",
// 汇率相关
confirmModify: "确认修改?",
pleaseInputRate: "请输入汇率比例",
@ -399,6 +400,8 @@ export default {
noRoleAssigned: "暂未分配角色",
unknownRole: "未知角色",
refundSubmitSuccess: "退款申请已提交",
refundConfirmTitle: "退款确认",
refundConfirmContent: "确定要对订单 {orderNo} 进行退款吗?",
exportError: "导出失败",
},
@ -1078,6 +1081,16 @@ export default {
paymentAsia: "PaymentAsia-链接收款",
transfer: "E-Transfer",
},
statusList: {
submitted: "已提交",
pending: "待审核",
passed: "审核通过",
recalled: "已撤回",
refunded: "已退款",
rejected: "已驳回",
inProgress: "进行中",
received: "已到账",
},
unit: "个",
year: "年",
month: "月",
@ -1178,9 +1191,10 @@ export default {
pending: "待审核",
passed: "审核通过",
recalled: "已撤回",
refunded: "退款",
refunded: "退款",
rejected: "已驳回",
inProgress: "进行中",
received: "已到账",
},
// 退款执行
pending: "待处理",

97
src/views/moneyManage/financialAccount/performanceAttribution.vue

@ -30,8 +30,8 @@ const paytypeList = [
const payPlatformOptions = ref([...paytypeList])
const statusOptions = [
{ label: '已到账', value: 4 },
{ label: '已退款', value: 6 }
{ label: t('cash.statusList.received'), value: 4 },
{ label: t('cash.statusList.refunded'), value: 6 }
]
//
@ -103,13 +103,13 @@ const fetchData = async () => {
total.value = res.data.total || 0
loading.value = false
} else {
ElMessage.error(res.msg || '获取数据失败')
ElMessage.error(res.msg || t('elmessage.getDataFailed'))
loading.value = false
}
} catch (error) {
console.error(error)
loading.value = false
ElMessage.error('获取数据失败')
ElMessage.error(t('elmessage.getDataFailed'))
}
}
@ -138,14 +138,12 @@ const handleCurrentChange = (val) => {
// 退
const handleRefund = (row) => {
ElMessageBox.confirm(`确定要对订单 ${row.systemTradeNo} 进行退款吗?`, '退款确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
ElMessageBox.confirm(t('elmessage.refundConfirmContent', { orderNo: row.systemTradeNo }), t('elmessage.refundConfirmTitle'), {
confirmButtonText: t('common.confirm'),
cancelButtonText: t('common.cancel'),
type: 'warning'
}).then(() => {
ElMessage.success('退款申请已提交')
ElMessage.success(t('elmessage.refundSubmitSuccess'))
//
fetchData()
}).catch(() => {})
@ -182,7 +180,7 @@ const handleExport = async () => {
} catch (error) {
console.error(error)
ElMessage.error('导出失败')
ElMessage.error(t('elmessage.exportError'))
}
}
@ -259,11 +257,11 @@ onMounted(() => {
<!-- 第一行 -->
<div class="search-row">
<div class="search-item">
<span class="label">精网号</span>
<el-input v-model="queryParams.jwcode" placeholder="请输入精网号" clearable />
<span class="label">{{ t('common.jwcode') }}</span>
<el-input v-model="queryParams.jwcode" :placeholder="t('common.jwcodePlaceholder')" clearable />
</div>
<div class="search-item">
<span class="label">所属地区</span>
<span class="label">{{ t('common.market') }}</span>
<!-- 下拉多选使用 el-cascader 匹配地区树结构 -->
<el-cascader
v-model="queryParams.customerMarket"
@ -271,20 +269,20 @@ onMounted(() => {
:props="{ multiple: true, emitPath: false }"
collapse-tags
collapse-tags-tooltip
placeholder="请选择地区"
:placeholder="t('common.marketPlaceholder')"
clearable
style="width: 220px;"
/>
</div>
<div class="search-item" style="width: auto;">
<span class="label">付款时间</span>
<span class="label">{{ t('common.payTime2') }}</span>
<el-date-picker
v-model="queryParams.timeRange"
type="datetimerange"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间"
:range-separator="t('common.to')"
:start-placeholder="t('common.startTime')"
:end-placeholder="t('common.endTime')"
:default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]"
style="width: 350px;"
/>
@ -303,27 +301,27 @@ onMounted(() => {
<!-- 表格区域 -->
<el-card class="table-card">
<el-table :data="tableData" v-loading="loading" style="width: 100%; flex: 1;" :cell-style="{ textAlign: 'center' }" :header-cell-style="{ background: '#F3FAFE', color: '#333',textAlign: 'center' }">
<el-table-column type="index" label="序号" min-width="60" align="center" fixed="left" />
<el-table-column prop="jwcode" label="精网号" min-width="120" fixed="left" />
<el-table-column prop="name" label="姓名" min-width="150" show-overflow-tooltip />
<el-table-column prop="marketName" label="所属地区" min-width="120" show-overflow-tooltip />
<el-table-column prop="orderCode" label="系统交易号" min-width="280" show-overflow-tooltip />
<el-table-column type="index" :label="t('common_list.id')" min-width="60" align="center" fixed="left" />
<el-table-column prop="jwcode" :label="t('common_list.jwcode')" min-width="120" fixed="left" />
<el-table-column prop="name" :label="t('common_list.name')" min-width="150" show-overflow-tooltip />
<el-table-column prop="marketName" :label="t('common_list.market')" min-width="120" show-overflow-tooltip />
<el-table-column prop="orderCode" :label="t('common_list.orderCode')" min-width="280" show-overflow-tooltip />
<el-table-column prop="paymentAmount" label="付款金额" min-width="150" align="right">
<el-table-column prop="paymentAmount" :label="t('common_list.payAmount')" min-width="150" align="right">
<!-- <template #default="{ row }">
{{ row.paymentAmount }} {{ row.paymentCurrency }}
</template> -->
</el-table-column>
<el-table-column prop="paymentCurrency" label="付款币种" min-width="180" show-overflow-tooltip />
<el-table-column prop="paymentCurrency" :label="t('common_list.payCurrency')" min-width="180" show-overflow-tooltip />
<el-table-column prop="receivedAmount" label="到账金额" min-width="150" align="right">
<el-table-column prop="receivedAmount" :label="t('common_list.receiveAmount')" min-width="150" align="right">
<!-- <template #default="{ row }">
{{ row.receivedAmount }} {{ row.receivedCurrency }}
</template> -->
</el-table-column>
<el-table-column prop="receivedCurrency" label="到账币种" min-width="180" show-overflow-tooltip />
<el-table-column prop="receivedCurrency" :label="t('common_list.receiveCurrency')" min-width="180" show-overflow-tooltip />
<el-table-column prop="handlingCharge" label="手续费" min-width="100" align="right" />
<el-table-column prop="handlingCharge" :label="t('common_list.fee')" min-width="100" align="right" />
</el-table>
<!-- 分页 -->
@ -410,56 +408,43 @@ onMounted(() => {
align-items: center;
.label {
font-size: 15px; // coinConsumeDetail .text size="large"
color: #000; // #606266
white-space: nowrap;
margin-right: 8px;
min-width: 60px;
text-align: right;
}
.el-input, .el-select {
width: 200px;
margin-right: 10px;
font-weight: bold;
color: #606266;
}
}
.search-btn-group {
margin-left: 2vw;
margin-left: auto;
display: flex;
gap: 10px;
}
.table-card {
background: #E7F4FD;
flex: 1;
border: none;
display: flex;
flex-direction: column;
overflow: hidden;
border: none;
:deep(.el-card__body) {
padding: 20px;
flex: 1;
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
padding: 0;
}
}
.pagination-container {
margin-top: 15px;
padding: 15px;
display: flex;
justify-content: flex-start;
}
// ( coinConsumeDetail)
:deep(.el-table__header-wrapper),
:deep(.el-table__body-wrapper),
:deep(.el-table__cell),
:deep(.el-table__body td) {
background-color: #F3FAFE !important; //
justify-content: flex-end;
background: #fff;
border-top: 1px solid #ebeef5;
}
:deep(.el-table__row:hover > .el-table__cell) {
background-color: #E5EBFE !important;
.dialog-footer {
text-align: right;
}
</style>
Loading…
Cancel
Save