Browse Source

feat(国际化): 添加多语言支持并更新现金流水页面

zhangyong/feature-20260113094820-现金重构
zhangrenyuan 1 month ago
parent
commit
f9a4deefd3
  1. 53
      src/components/locales/lang/en.js
  2. 16
      src/components/locales/lang/zh-CN.js
  3. 78
      src/views/moneyManage/financialAccount/cashFlow.vue

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

@ -35,9 +35,13 @@ export default {
orderStatusPlaceholder: "Select status",
payCurrency: "Pay Currency",
payCurrencyPlaceholder: "Select currency",
payPlatform1: "Payment Platform",
payPlatformPlaceholder1: "Select payment platform",
productName: "Product",
productNamePlaceholder: "Enter product",
type: "Type",
status: "Status",
statusPlaceholder: "Select status",
typePlaceholder: "Select type",
customerBelong: "Customer Region",
activityBelong: "Activity Region",
@ -66,6 +70,7 @@ export default {
consumeTime: "Consume Time",
consumetime: "Consume Time",
payTime: "Payment Time",
payTime2: "Payment Time",
rechargeTime: "Recharge Time",
refundTime: "Refund Time",
updateTime: "Update Time",
@ -92,6 +97,7 @@ export default {
pass: "Approve",
close: "Close",
reject: "Reject",
rejectInfo: "Reject Info",
cancel: "Cancel",
confirm: "Confirm",
submit: "Submit",
@ -110,13 +116,13 @@ export default {
pendingFee: "Fee Pending",
viewRejectReason: "Reject Reason",
viewProgress: "View Progress",
viewProgress: "View Progress",
// Buttons-Date
today: "Today",
yesterday: "Yesterday",
last7Days: "Last 7 Days",
// Buttons-Cash-Audit
pendingAudit: "Pending",
audited: "Audited",
passed: "Passed",
completed: "Completed",
withdrawn: "Recalled",
@ -171,14 +177,11 @@ export default {
changeRoleConfirmContent1: "Confirm role change?<br>Changing role for [",
changeRoleConfirmContent2: "] from [",
changeRoleConfirmContent3: "] to [",
changeRoleConfirmContent4:
"]<br>Permissions will update to the new role configuration. Please confirm.",
changeRoleConfirmContent4: "]<br>Permissions will update to the new role configuration. Please confirm.",
changeRoleSuccessContent1: "User ",
changeRoleSuccessContent2: "'s role changed to [",
roleRegionNote:
"Region setting is for display only; used by branch managers to view roles.",
roleRegionNote: "Region setting is for display only; used by branch managers to view roles.",
},
// Message Group
elmessage: {
// Common
@ -337,6 +340,7 @@ export default {
limitImageSize2MB: "Max 2MB!",
// Audit
noPermission: "No permission",
checkJwcodeFormat: "Invalid Homily ID format",
rejectReasonPlaceholder: "Enter reject reason",
rejectSuccess: "Rejected",
rejectFailed: "Reject failed",
@ -370,6 +374,7 @@ export default {
pleaseInputCorrectRateFormat: "Check rate format",
pleaseInputCorrectSymbol: "Check symbol",
onlyOneDecimalPoint: "One decimal point only",
noNegativeNumber: "No negative numbers",
integerPartLimit: "Integer max 6 digits",
decimalPartLimit: "Decimal max 7 digits",
// Gold Bean
@ -387,11 +392,14 @@ export default {
refundReasonPlaceholder: "Enter refund reason",
activityLoadFailed: "Activity load failed",
activityDataLoadFailed: "Activity data error",
getDataFailed: "Get data failed",
// Permission
noPermissionText: "No permission, contact admin",
permissionPrompt: "Permission Prompt",
noRoleAssigned: "No role assigned",
unknownRole: "Unknown role",
refundSubmitSuccess: "Refund application submitted successfully",
exportError: "Export failed",
},
// Common List Fields
@ -419,6 +427,7 @@ export default {
payPlatform: "Platform",
type: "Type",
orderNo: "Order No.",
orderCode: "Order Code",
number: "number",
money: "Amount",
goodsName: "Product Name",
@ -466,6 +475,7 @@ export default {
receiveTime: "Received Time",
rejectTime: "Reject Time",
rejectReason: "Reject Reason",
rejectRemark: "Reject Remark",
refundReason: "Refund Reason",
operation: "Operation",
// Gold Bean
@ -488,6 +498,7 @@ export default {
articleVideoTitle: "Title",
author: "Author",
payTime: "Pay Time",
payTime2: "Pay Time",
currentGoldBean: "Current Beans",
historyConsumption: "Hist. Consume",
customerName: "Customer",
@ -509,9 +520,13 @@ export default {
inProgress: "In Progress",
ended: "Ended",
},
operation: "Operation",
configTime: "Config Time",
status: "Status",
enable: "Enable",
disable: "Disable",
received: "Received",
rejected: "Rejected",
},
// Common Export Fields
common_export: {
@ -568,6 +583,8 @@ export default {
customerNamePlaceholder: "Enter customer name",
rejectReason: "Reject Reason",
rejectReasonPlaceholder: "Enter reason",
rejectRemark: "Reject Remark",
rejectRemarkPlaceholder: "Enter remark",
market: "Region",
marketPlaceholder: "Enter region",
activity: "Activity",
@ -626,6 +643,7 @@ export default {
paymentVoucherPlaceholder: "JPG/PNG ≤1MB",
transferVoucherPlaceholder: "JPG/PNG ≤2MB",
uploadPhoto: "Upload Image",
remark: "Remark",
remarkPlaceholder: "Enter remark",
// Confirm
operationConfirm: "Confirm",
@ -676,6 +694,7 @@ export default {
// Audit Group
audit: {
// 按照项目文件名分配
// General
refundTypeOptions: {
商品退款: "Product Refund",
@ -740,6 +759,8 @@ export default {
// Bean Audit
totalNum: "Total Items",
totalBean: "Total Beans",
permanentBean: "PermanentBeans",
freeBean: "Free Beans",
// Dialog Titles
rejectRecord: "Reject Record!",
passRecord: "Approve Record!",
@ -747,11 +768,15 @@ export default {
// Recharge Group
recharge: {
// 金币充值明细
coinRechargeDetail: "Coin Recharge Details",
// 订单状态
normal: "Normal",
refunded: "Refunded",
unknown: "Unknown",
// 金币新增充值
addCoinRecharge: "New Recharge",
//
// Pay Methods
payMethods: {
bankTransfer: "Bank Transfer",
@ -779,10 +804,13 @@ export default {
// Consume Group
consume: {
//
coinConsumeDetail: "Coin Consume Details",
//
normal: "Normal",
refunded: "Refunded",
unknown: "Unknown",
//
consumePlatforms: {
goldSystem: "Gold System",
HomilyChart: "HomilyChart",
@ -791,7 +819,9 @@ export default {
other: "Other",
initGold: "Init Gold",
},
//
addCoinConsume: "New Consume",
//
addBeanConsume: "New Consume",
liveStream: "Live",
dieHardFan: "Die-hard Fan",
@ -926,7 +956,7 @@ export default {
query: "Query",
gold: "Gold",
recharge: "Recharge",
consume: "Consume",
consumes: "Consume",
rank: "Rank",
allTypes: "All Types",
region: "Region",
@ -1138,5 +1168,14 @@ export default {
},
pending: "Pending",
refundSuccess: "Refund Success",
refundConfirmTitle: "Refund Confirmation",
refundConfirmContent: "Are you sure you want to refund order {orderNo}?",
},
// Message
message: {
today: "Today",
yesterday: "Yesterday",
earlier: "Earlier",
},
};

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

@ -35,9 +35,13 @@ export default {
orderStatusPlaceholder: "请选择订单状态",
payCurrency: "付款币种",
payCurrencyPlaceholder: "请选择付款币种",
payPlatform1: "支付平台",
payPlatformPlaceholder1: "请选择支付平台",
productName: "产品名称",
productNamePlaceholder: "请输入产品名称",
type: "类型",
status: "状态",
statusPlaceholder: "请选择状态",
typePlaceholder: "请选择类型",
customerBelong: "客户归属地",
activityBelong: "活动归属地",
@ -66,6 +70,7 @@ export default {
consumeTime: "消耗时间",
consumetime: "消费时间",
payTime: "付费时间",
payTime2: "付款时间",
rechargeTime: "充值时间",
refundTime: "退款时间",
updateTime: "更新时间",
@ -387,11 +392,14 @@ export default {
refundReasonPlaceholder: "请输入退款原因",
activityLoadFailed: "活动列表加载失败,请稍后重试",
activityDataLoadFailed: "活动数据加载异常,请稍后重试",
getDataFailed: "获取数据失败",
// 权限
noPermissionText: "您暂无该页面操作权限,请联系管理员",
permissionPrompt: "权限提示",
noRoleAssigned: "暂未分配角色",
unknownRole: "未知角色",
refundSubmitSuccess: "退款申请已提交",
exportError: "导出失败",
},
// 通用列表字段组
@ -419,6 +427,7 @@ export default {
payPlatform: "平台信息",
type: "更新类型",
orderNo: "订单号",
orderCode: "系统交易号",
number: "数量",
money: "金额",
goodsName: "商品名称",
@ -467,6 +476,7 @@ export default {
rejectTime: "驳回时间",
rejectReason: "驳回理由",
rejectRemark: "驳回备注",
refundReason: "退款理由",
operation: "操作",
// 金豆相关
permanentBean: "付费金豆",
@ -488,6 +498,7 @@ export default {
articleVideoTitle: "文章/视频标题",
author: "作者",
payTime: "付费时间",
payTime2: "付款时间",
currentGoldBean: "现有金豆",
historyConsumption: "历史消费",
customerName: "客户姓名",
@ -514,6 +525,8 @@ export default {
status: "状态",
enable: "启用",
disable: "禁用",
received: "已到账",
rejected: "已驳回",
},
// 通用导出字段组
common_export: {
@ -1172,6 +1185,8 @@ export default {
// 退款执行
pending: "待处理",
refundSuccess: "退款成功",
refundConfirmTitle: "退款确认",
refundConfirmContent: "确定要对订单 {orderNo} 进行退款吗?",
},
// 消息
@ -1181,4 +1196,3 @@ export default {
earlier: "更早",
},
};

78
src/views/moneyManage/financialAccount/cashFlow.vue

@ -25,8 +25,8 @@ const paytypeList = [
const payPlatformOptions = ref([...paytypeList])
const statusOptions = [
{ label: '已到账', value: 4 },
{ label: '已退款', value: 6 }
{ label: t('common_list.received'), value: 4 },
{ label: t('common_list.rejected'), value: 6 }
]
//
@ -101,13 +101,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,14 @@ const handleCurrentChange = (val) => {
// 退
const handleRefund = (row) => {
ElMessageBox.confirm(`确定要对订单 ${row.systemTradeNo} 进行退款吗?`, '退款确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
ElMessageBox.confirm(t('cash.refundConfirmContent', { orderNo: row.systemTradeNo }), t('cash.refundConfirmTitle'), {
confirmButtonText: t('common.confirm'),
cancelButtonText: t('common.cancel'),
type: 'warning'
}).then(() => {
ElMessage.success('退款申请已提交')
ElMessage.success(t('elmessage.refundSubmitSuccess'))
//
fetchData()
}).catch(() => {})
@ -184,7 +184,7 @@ const handleExport = async () => {
} catch (error) {
console.error(error)
ElMessage.error('导出失败')
ElMessage.error(t('elmessage.exportError'))
}
}
@ -261,11 +261,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.markets"
@ -273,20 +273,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">
<span class="label">支付平台</span>
<el-select v-model="queryParams.payType" placeholder="请选择" clearable>
<span class="label">{{ t('common.payPlatform1') }}</span>
<el-select v-model="queryParams.payType" :placeholder="t('common.payPlatformPlaceholder1')" clearable>
<el-option v-for="item in payPlatformOptions" :key="item" :label="item" :value="item" />
</el-select>
</div>
<div class="search-item">
<span class="label">状态</span>
<el-select v-model="queryParams.statuses[0]" placeholder="请选择" clearable>
<span class="label">{{ t('common.status') }}</span>
<el-select v-model="queryParams.statuses[0]" :placeholder="t('common.statusPlaceholder')" clearable>
<el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
@ -295,17 +295,17 @@ onMounted(() => {
<!-- 第二行 -->
<div class="search-row">
<div class="search-item">
<span class="label">订单号</span>
<el-input v-model="queryParams.orderCode" placeholder="请输入订单号" clearable />
<span class="label">{{ t('common.orderNo') }}</span>
<el-input v-model="queryParams.orderCode" :placeholder="t('common.orderNoPlaceholder')" clearable />
</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;"
/>
@ -323,39 +323,39 @@ onMounted(() => {
<!-- 表格区域 -->
<el-card class="table-card">
<el-table :data="tableData" v-loading="loading" style="width: 100%; flex: 1;" :header-cell-style="{ background: '#F3FAFE', color: '#333' }">
<el-table-column type="index" label="序号" width="60" align="center" fixed="left" />
<el-table-column prop="jwcode" label="精网号" width="120" fixed="left" />
<el-table-column prop="name" label="姓名" width="120" show-overflow-tooltip />
<el-table-column prop="market" label="所属地区" width="120" show-overflow-tooltip />
<el-table-column prop="orderCode" label="系统交易号" width="180" show-overflow-tooltip />
<el-table-column type="index" :label="t('common_list.id')" width="60" align="center" fixed="left" />
<el-table-column prop="jwcode" :label="t('common_list.jwcode')" width="120" fixed="left" />
<el-table-column prop="name" :label="t('common_list.name')" width="120" show-overflow-tooltip />
<el-table-column prop="market" :label="t('common_list.market')" width="120" show-overflow-tooltip />
<el-table-column prop="orderCode" :label="t('common_list.orderCode')" width="180" show-overflow-tooltip />
<el-table-column prop="paymentAmount" label="付款金额" width="150" align="right">
<el-table-column prop="paymentAmount" :label="t('common_list.payAmount')" width="150" align="right">
<!-- <template #default="{ row }">
{{ row.paymentAmount }} {{ row.paymentCurrency }}
</template> -->
</el-table-column>
<el-table-column prop="paymentCurrency" label="付款币种" width="180" show-overflow-tooltip />
<el-table-column prop="paymentCurrency" :label="t('common_list.payCurrency')" width="180" show-overflow-tooltip />
<el-table-column prop="receivedAmount" label="到账金额" width="150" align="right">
<el-table-column prop="receivedAmount" :label="t('common_list.receiveAmount')" width="150" align="right">
<!-- <template #default="{ row }">
{{ row.receivedAmount }} {{ row.receivedCurrency }}
</template> -->
</el-table-column>
<el-table-column prop="receivedCurrency" label="到账币种" width="180" show-overflow-tooltip />
<el-table-column prop="receivedCurrency" :label="t('common_list.receiveCurrency')" width="180" show-overflow-tooltip />
<el-table-column prop="handlingCharge" label="手续费" width="100" align="right" />
<el-table-column prop="payType" label="支付方式" width="120" align="center" />
<el-table-column prop="payTime" label="付款时间" width="180" align="center" />
<el-table-column prop="handlingCharge" :label="t('common_list.fee')" width="100" align="right" />
<el-table-column prop="payType" :label="t('common_list.payModel')" width="120" align="center" />
<el-table-column prop="payTime" :label="t('common_list.payTime2')" width="180" align="center" />
<el-table-column prop="status" label="状态" width="100" align="center" fixed="right">
<el-table-column prop="status" :label="t('common_list.status')" width="100" align="center" fixed="right">
<template #default="{ row }">
<el-tag :type="row.status === 4 ? 'success' : 'warning'" effect="plain">
{{ row.status === 4 ? '已到账' : '已退款' }}
{{ row.status === 4 ? t('common_list.received') : t('common_list.rejected') }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="100" fixed="right" align="center">
<el-table-column :label="t('common_list.operation')" width="100" fixed="right" align="center">
<template #default="{ row }">
<el-button
v-if="row.orderCode.slice(0,4) == 'GOLD'"
@ -364,7 +364,7 @@ onMounted(() => {
size="small"
@click="handleRefund(row)"
>
退款
{{ t('common_list.refund') }}
</el-button>
</template>
</el-table-column>

Loading…
Cancel
Save