From 29144efa0a30f3a00651ec8c0a91ba43e436eee9 Mon Sep 17 00:00:00 2001 From: zhangrenyuan <18990852002@163.com> Date: Fri, 28 Nov 2025 18:58:37 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20=E5=AE=8C=E6=88=90=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E9=87=91=E5=B8=81=E7=9A=84=E4=B8=AD=E6=96=87=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E5=8C=85=EF=BC=8C=E8=87=B3=E6=AD=A4=E6=9C=AC=E6=9C=9F?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E6=89=80=E6=9C=89=E4=B8=AD=E6=96=87=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E5=8C=85=E6=B7=BB=E5=8A=A0=E5=AE=8C=E6=88=90=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/locales/lang/zh-CN.js | 36 +++++++ src/views/usergold/gold/clientCount.vue | 6 +- src/views/usergold/gold/clientCountBalance.vue | 85 ++++++++-------- src/views/usergold/gold/clientCountDetail.vue | 133 +++++++++++++------------ 4 files changed, 154 insertions(+), 106 deletions(-) diff --git a/src/components/locales/lang/zh-CN.js b/src/components/locales/lang/zh-CN.js index aaebf9a..48a9fc9 100644 --- a/src/components/locales/lang/zh-CN.js +++ b/src/components/locales/lang/zh-CN.js @@ -1,9 +1,12 @@ import { UploadFilled } from "@element-plus/icons-vue"; +// 包里的变量不可随意更改!!! + export default { // 通用组 (筛选,按钮,币种计量) common: { // 筛选 + name: '姓名', jwcode: '精网号', jwcodePlaceholder: '请输入精网号', activityName: '活动名称', @@ -20,9 +23,14 @@ export default { consumePlatformPlaceholder: '请选择消耗平台', rechargePlatform: '充值平台', rechargePlatformPlaceholder: '请选择充值平台', + payPlatform: '平台信息', + payPlatformPlaceholder: '请选择平台信息', + updateType: '数量更新类型', + updateTypePlaceholder: '请选择更新类型', consumeTime: '消耗时间', rechargeTime: '充值时间', refundTime: '退款时间', + updateTime: '更新时间', submitTime: '提交时间', auditTime: '审核时间', startTime: '起始时间', @@ -49,6 +57,8 @@ export default { consumeSGD: '消耗新币', refundGoldCoin: '退款金币总数', totalGoldCoin: '总金币数', + netGoldChange: '金币净变化', + netGoldChangeTip: '当前合计仅显示筛选范围内的金币净变化(充值总额 - 消费总额 + 退款总额)', permanentGold: '永久金币', freeGold: '免费金币', taskGold: '任务金币', @@ -71,6 +81,8 @@ export default { addFailed: '添加失败,请检查网络连接或联系管理员', queryFailed: '查询失败,请检查网络连接或精网号是否正确', refundTypeError: '退款类型数据格式错误,请联系管理员', + getTotalFailed: '获取合计数失败,请稍后重试', + payPlatformError: '平台信息格式错误,请联系管理员', confirmRefund: '确认退款?', // 校验精网号,充值等输入 checkInputContent: '请检查输入内容', @@ -144,6 +156,9 @@ export default { name: '姓名', jwcode: '精网号', market: '所属地区', + sumGold: '金币总数', + payPlatform: '平台信息', + type: '更新类型', orderNo: '订单号', goodsName: '商品名称', refundType: '退款类型', @@ -154,6 +169,9 @@ export default { activity: '活动名称', rateName: '货币名称', rechargeAmount: '充值金额', + Gold: '金币数量', + freeGold6Month: '6月份到期免费金币', + freeGold12Month: '12月份到期免费金币', permanentGold: '永久金币', freeGold: '免费金币', taskGold: '任务金币', @@ -167,6 +185,7 @@ export default { rechargeTime: '充值时间', consumeTime: '消耗时间', refundTime: '退款时间', + updateTime: '更新时间', }, // 通用导出字段组 common_export: { @@ -385,4 +404,21 @@ export default { no: '否', yes: '是', }, + + // 客户统计组 + clientCount: { + // 客户金币余额 --------------------------------- + clientCountBalance: '金币余额', + // 客户统计明细 --------------------------------- + clientCountDetail: '金币明细', + recharge: '充值', + consume: '消耗', + refund: '退款', + other: '其他', + type: { + recharge: '充值', + consume: '消耗', + refund: '退款', + } + }, } \ No newline at end of file diff --git a/src/views/usergold/gold/clientCount.vue b/src/views/usergold/gold/clientCount.vue index 63d57a5..0803950 100644 --- a/src/views/usergold/gold/clientCount.vue +++ b/src/views/usergold/gold/clientCount.vue @@ -10,7 +10,7 @@ :disabled="!hasDetail" v-if="hasDetail" > - 金币明细 + {{ $t('clientCount.clientCountDetail') }} - 金币余额 + {{ $t('clientCount.clientCountBalance') }} @@ -34,6 +34,8 @@ import {useRoute, useRouter} from 'vue-router'; import {storeToRefs} from "pinia"; import {useAdminStore} from "@/store/index.js"; import {hasMenuPermission, permissionMapping} from "@/utils/menuTreePermission.js"; +// 国际化 +import { useI18n } from 'vue-i18n' const router = useRouter(); const route = useRoute(); diff --git a/src/views/usergold/gold/clientCountBalance.vue b/src/views/usergold/gold/clientCountBalance.vue index e77fa21..a7a1bd1 100644 --- a/src/views/usergold/gold/clientCountBalance.vue +++ b/src/views/usergold/gold/clientCountBalance.vue @@ -18,6 +18,9 @@ import { ElMessage } from 'element-plus' import moment from 'moment' import API from '@/util/http.js' import { reverseMarketMapping } from "@/utils/marketMap.js"; +// 国际化 +import { useI18n } from 'vue-i18n' +const { t } = useI18n() //新增员工数据复选框 // const showEmployeeData = ref(false) @@ -74,7 +77,7 @@ const sortOrder = ref('') // 搜索方法 const get = async function (val) { if (!findMenuById(menuTree.value, permissionMapping.gold_coin_customer_balance)) { - ElMessage.error('无此权限') + ElMessage.error(t('elmessage.noPermission')) return } try { @@ -102,7 +105,7 @@ const get = async function (val) { // 检查是否不是数字 if (!numberRegex.test(user.value.jwcode)) { - ElMessage.error('请检查精网号格式') + ElMessage.error(t('elmessage.checkJwcodeFormat')) // 上面提示过了 return } @@ -171,7 +174,7 @@ const get = async function (val) { goldtotal.value = parseFloat(resultGoldTotal.data.goldtotal.toFixed(2)) } else { console.error('合计数数据格式错误', resultGoldTotal) - ElMessage.error('获取合计数失败,请稍后重试') + ElMessage.error(t('elmessage.getTotalFailed')) } // 存储分页总数 total.value = result.data.total @@ -210,7 +213,7 @@ const reset = function () { } const cellClick = function (row, column) { console.log('cellClick', column.label) - if (column.label === '姓名') { + if (column.label === t('common.name')) { dialogVisible.value = true userInfo.value = row @@ -258,7 +261,7 @@ const exportExcel = async function () { } const res = await API({ url: '/goldDetail/exportGold', data: params }) if (res.code === 200) { - ElMessage.success('导出成功') + ElMessage.success(t('elmessage.exportSuccess')) } } @@ -285,11 +288,11 @@ const getExportList = async () => { }); exportList.value = filteredData } else { - ElMessage.error(result.msg || '获取导出列表失败') + ElMessage.error(result.msg || t('elmessage.getExportListError')) } } catch (error) { console.error('获取导出列表出错:', error) - ElMessage.error('获取导出列表失败,请稍后重试') + ElMessage.error(t('elmessage.getExportListError')) } finally { exportListLoading.value = false } @@ -302,7 +305,7 @@ const downloadExportFile = (item) => { link.download = item.fileName link.click() } else { - ElMessage.warning('文件还在导出中,请稍后再试') + ElMessage.warning(t('elmessage.exportingInProgress')) } } //根据状态返回对应的标签类型 @@ -324,15 +327,15 @@ const getTagType = (state) => { const getTagText = (state) => { switch (state) { case 0: - return '待执行'; + return t('elmessage.pendingExecution'); case 1: - return '执行中'; + return t('elmessage.executing'); case 2: - return '执行完成'; + return t('elmessage.executed'); case 3: - return '执行出错'; + return t('elmessage.errorExecution'); default: - return '未知状态'; + return t('elmessage.unknownStatus'); } } // 存储地区选择变化 @@ -395,46 +398,46 @@ const format3 = (num) => {
- 精网号: - + {{ $t('common.jwcode') }}: +
- 所属地区: - {{ $t('common.market') }}: +
- 查询 - 导出Excel - 查看导出列表 - 重置 + {{ $t('common.search') }} + {{ $t('common.exportExcel') }} + {{ $t('common.viewExportList') }} + {{ $t('common.reset') }}
- 金币总数:{{ format3(goldtotal || 0) }}     - 永久金币:{{ format3(permanentGold || 0) }}     - 免费金币:{{ format3(freeGold || 0) }}     - 任务金币:{{ format3(taskGold || 0) }} + {{ $t('common.totalGoldCoin') }}:{{ format3(goldtotal || 0) }}     + {{ $t('common.permanentGold') }}:{{ format3(permanentGold || 0) }}     + {{ $t('common.freeGold') }}:{{ format3(freeGold || 0) }}     + {{ $t('common.taskGold') }}:{{ format3(taskGold || 0) }}
- + - - - - + + + + - + - + - + - + @@ -520,33 +523,33 @@ const format3 = (num) => { @current-change="handleCurrentChange">
- + - - + + - + - + diff --git a/src/views/usergold/gold/clientCountDetail.vue b/src/views/usergold/gold/clientCountDetail.vue index 882f909..b56fa93 100644 --- a/src/views/usergold/gold/clientCountDetail.vue +++ b/src/views/usergold/gold/clientCountDetail.vue @@ -11,6 +11,10 @@ import { storeToRefs } from "pinia" import { findMenuById, permissionMapping } from "@/utils/menuTreePermission.js" const adminStore = useAdminStore() const { adminData, menuTree, flag } = storeToRefs(adminStore) +// 国际化 +import { useI18n } from 'vue-i18n' +const { t } = useI18n() + //新增复选框员工数据 // const showEmployeeData = ref(false) @@ -66,12 +70,12 @@ const getPlatform = async () => { platform.value = result.data.map(item => ({ value: item, label: item })); } else { console.error('平台信息格式错误', result) - ElMessage.error('平台信息格式错误,请联系管理员') + ElMessage.error(t('elmessage.payPlatformError')) } } catch (error) { console.error('获取平台信息失败:', error); - ElMessage.error('获取平台信息失败,请稍后重试'); + ElMessage.error(t('elmessage.payPlatformError')) } finally { isLoadingPlatform.value = false } @@ -81,15 +85,15 @@ const getPlatform = async () => { const type = [ { value: '0', - label: '充值' + label: t('clientCount.type.recharge') }, { value: '1', - label: '消耗' + label: t('clientCount.type.consume') }, { value: '2', - label: '退款' + label: t('clientCount.type.refund') } ] @@ -130,7 +134,7 @@ const getObj = ref({ // 搜索方法 const get = async function (val) { if (!findMenuById(menuTree.value, permissionMapping.gold_coin_customer_bill)) { - ElMessage.error('无此权限') + ElMessage.error(t('elmessage.noPermission')) return } try { @@ -166,7 +170,7 @@ const get = async function (val) { // 检查是否不是数字 if (!numberRegex.test(goldDetail.value.jwcode)) { - ElMessage.error('请检查精网号格式') + ElMessage.error(t('elmessage.checkJwcodeFormat')) // 上面提示过了 return } @@ -213,7 +217,7 @@ const get = async function (val) { totalTaskGold.value = 0 totalGoldTotal.value = 0 } else { - ElMessage.error('获取合计数据失败') + ElMessage.error(t('elmessage.getTotalFailed')) } @@ -324,7 +328,7 @@ const exportExcel = async function () { } const res = await API({ url: '/goldDetail/export', data: params }) if (res.code === 200) { - ElMessage.success('导出成功') + ElMessage.success(t('elmessage.exportSuccess')) } } @@ -370,11 +374,11 @@ const getExportList = async () => { }); exportList.value = filteredData } else { - ElMessage.error(result.msg || '获取导出列表失败') + ElMessage.error(result.msg || t('elmessage.getExportListError')) } } catch (error) { console.error('获取导出列表出错:', error) - ElMessage.error('获取导出列表失败,请稍后重试') + ElMessage.error(t('elmessage.getExportListError')) } finally { exportListLoading.value = false } @@ -387,7 +391,7 @@ const downloadExportFile = (item) => { link.download = item.fileName link.click() } else { - ElMessage.warning('文件还在导出中,请稍后再试') + ElMessage.warning(t('elmessage.exportingInProgress')) } } //根据状态返回对应的标签类型 @@ -409,15 +413,15 @@ const getTagType = (state) => { const getTagText = (state) => { switch (state) { case 0: - return '待执行'; + return t('elmessage.pendingExecution'); case 1: - return '执行中'; + return t('elmessage.executing'); case 2: - return '执行完成'; + return t('elmessage.executed'); case 3: - return '执行出错'; + return t('elmessage.errorExecution'); default: - return '未知状态'; + return t('elmessage.unknownStatus'); } } @@ -482,25 +486,25 @@ const format3 = (num) => {
- 精网号: - + {{ $t('common.jwcode') }}: +
- 平台信息: - {{ $t('common.payPlatform') }}: +
- 数量更新类型: - + {{ $t('common.updateType') }}: +
- 所属地区: - {{ $t('common.market') }}: +
- + - - + + - + - +