diff --git a/src/components/locales/lang/zh-CN.js b/src/components/locales/lang/zh-CN.js
index 2dc60c7..ae32e5f 100644
--- a/src/components/locales/lang/zh-CN.js
+++ b/src/components/locales/lang/zh-CN.js
@@ -1,5 +1,4 @@
-
// 包里的变量不可随意更改!!!
export default {
@@ -27,6 +26,8 @@ export default {
payPlatformPlaceholder: '请选择平台信息',
updateType: '数量更新类型',
updateTypePlaceholder: '请选择更新类型',
+ orderNo: '订单号',
+ orderNoPlaceholder: '请输入订单号',
consumeTime: '消耗时间',
rechargeTime: '充值时间',
refundTime: '退款时间',
@@ -68,6 +69,12 @@ export default {
条: '条',
个: '个',
goldBean: '金豆',
+ // 币种计量类型---金豆
+ totalGoldBean: '金豆总数:',
+ payGoldBean: '付费金豆数:',
+ freeGoldBean: '免费金豆数:',
+ rechargeGoldBean: '充值金豆数:',
+ totalRechargeSGD: '合计新币数:',
// 对话框标题
will: '将要',
deleteRecord: '删除该翻译记录!',
@@ -75,7 +82,9 @@ export default {
// 提示信息组
elmessage: {
// 通用
- addSuccess: '添加成功',
+ addSuccess: '添加成功', // 大写是添加成功,小写是新增
+ addsuccess: '新增成功',
+ cancelOperation: '操作取消',
searchSuccess: '查询成功',
requestFailed: '请求失败',
jwcodeError: '精网号错误',
@@ -106,6 +115,11 @@ export default {
checkRefundType: '请选择退款类型',
checkRefundGoods: '请选择退款商品',
checkOrderNo: '请输入订单号',
+ checkPayBean: '请输入付费金豆数',
+ checkNonNegative: '请输入非负整数',
+ checkFreeBean: '请输入免费金豆数',
+ checkRemark: '请输入备注',
+ checkFormInfo: '请检查并完善表单信息',
// 校验提示(error)
noEmptyJwcode: '精网号不能为空',
noEmptySumGold: '消耗金币总数不能为空',
@@ -113,6 +127,7 @@ export default {
noOrder: '未查询到相关订单',
noTotalGoldZero: '总金币数不能为0',
noNegativeNumber: '不能输入负数',
+ noPayBeanFreeBeanZero: '付费金豆和免费金豆不能同时为0',
limitDigitJwcode: '精网号只能包含数字',
limitNoSpecialChar: '不能包含特殊符号或负数',
limitNegativeNumber: '消耗金币总数不能为负数',
@@ -163,6 +178,9 @@ export default {
noNegativeNumber: '不允许输入负数',
integerPartLimit: '整数部分最多允许六位',
decimalPartLimit: '小数部分最多允许七位',
+ // 金豆充值相关
+ systemRechargeAreaError: '系统充值地区获取失败',
+ onlineRechargeAreaError: '线上充值地区获取失败',
},
// 通用列表字段组
@@ -175,6 +193,8 @@ export default {
payPlatform: '平台信息',
type: '更新类型',
orderNo: '订单号',
+ number: '数量',
+ money: '金额',
goodsName: '商品名称',
refundType: '退款类型',
refundModel: '退款方式',
@@ -203,6 +223,11 @@ export default {
refundTime: '退款时间',
updateTime: '更新时间',
operation: '操作',
+ // 金豆相关
+ permanentBean: '付费金豆',
+ freeBean: '免费金豆',
+ mobile: '手机',
+ other: '其他',
},
// 通用导出字段组
common_export: {
@@ -267,6 +292,10 @@ export default {
onlyStatisticsDataAfter20250101: '仅统计2025-01-01后的数据',
store: '所属门店',
maxReductionAmount: '红包最大抵扣金额',
+ //金豆
+ currentPayableBean: '当前付费金豆',
+ currentFreeBean: '当前免费金豆',
+ consumeTotalBean: '消耗金豆总数',
},
// 审核组
@@ -367,6 +396,15 @@ export default {
paymentAsia: 'PaymentAsia-链接收款',
other: '其他'
},
+ // 金豆
+ permanentBean: '付费金豆',
+ freeBean: '免费金豆',
+ confirmRecharge: '确认充值吗?',
+ prompt: '提示',
+ addBeanRecharge: '新增充值',
+ systemRecharge: '系统充值',
+ onlineRecharge: '线上充值',
+ mobile: '手机',
},
// 消耗组
diff --git a/src/views/recharge/bean/addBeanRecharge.vue b/src/views/recharge/bean/addBeanRecharge.vue
index 5ae5387..6277518 100644
--- a/src/views/recharge/bean/addBeanRecharge.vue
+++ b/src/views/recharge/bean/addBeanRecharge.vue
@@ -14,12 +14,15 @@ import throttle from 'lodash/throttle'
import { useAdminStore } from "@/store/index.js";
import { storeToRefs } from "pinia";
import _ from 'lodash';
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n()
+
const user = ref({})
const getUser = async function (jwcode) {
if (addForm.value.jwcode) {
addForm.value.jwcode = addForm.value.jwcode.replace(/\s/g, '');
} else {
- ElMessage.error('请先输入精网号')
+ ElMessage.error(t('elmessage.checkJwcode'))
return false
}
try {
@@ -32,15 +35,15 @@ const getUser = async function (jwcode) {
if (result.code === 0) {
ElMessage.error(result.msg);
} else if (result.data === null) {
- ElMessage.error("用户不存在");
+ ElMessage.error(t('elmessage.noUser'));
} else {
user.value = result.data;
console.log("用户信息", user.value.name);
- ElMessage.success("查询成功");
+ ElMessage.success(t('elmessage.searchSuccess'));
}
} catch (error) {
console.log("请求失败", error);
- ElMessage.error("精网号错误");
+ ElMessage.error(t('elmessage.jwcodeError'));
}
}
//提交禁止重复点击
@@ -58,22 +61,22 @@ const adminStore = useAdminStore()
const { adminData } = storeToRefs(adminStore)
const rules = reactive({
jwcode: [
- { required: true, message: '请输入精网号', trigger: 'blur' },
+ { required: true, message: t('elmessage.checkJwcode'), trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (!value) {
- callback(new Error('精网号不能为空'));
+ callback(new Error(t('elmessage.noEmptyJwcode')));
return;
}
if (/[^0-9]/.test(value)) {
- callback(new Error('精网号只能包含数字'));
+ callback(new Error(t('elmessage.limitDigitJwcode')));
return;
}
callback();
}, trigger: 'blur'
}],
permanentBean: [
- { required: true, message: '请输入付费金豆数', trigger: 'change' },
+ { required: true, message: t('elmessage.checkPayBean'), trigger: 'change' },
{
validator: (rule, value, callback) => {
if (!value) {
@@ -81,13 +84,13 @@ const rules = reactive({
}
// 检查是否为非负整数
if (!/^\d+$/.test(value)) {
- callback(new Error('请输入非负整数'));
+ callback(new Error(t('elmessage.checkNonNegative')));
return;
}
// 检查位数
if (value.length > 6) {
- callback(new Error('整数位数不能超过6位'));
+ callback(new Error(t('elmessage.limitSix')));
return;
}
callback();
@@ -97,7 +100,7 @@ const rules = reactive({
}
],
freeBean: [
- { required: true, message: '请输入免费金豆数', trigger: 'change' },
+ { required: true, message: t('elmessage.checkFreeBean'), trigger: 'change' },
{
validator: (rule, value, callback) => {
if (!value) {
@@ -105,13 +108,13 @@ const rules = reactive({
}
// 检查是否为非负整数
if (!/^\d+$/.test(value)) {
- callback(new Error('请输入非负整数'));
+ callback(new Error(t('elmessage.checkNonNegative')));
return;
}
// 检查位数
if (value.length > 6) {
- callback(new Error('整数位数不能超过6位'));
+ callback(new Error(t('elmessage.limitSix')));
return;
}
callback();
@@ -120,7 +123,7 @@ const rules = reactive({
}
],
remark: [
- { required: true, message: '请输入备注', trigger: 'blur' }
+ { required: true, message: t('elmessage.checkRemark'), trigger: 'blur' }
]
});
@@ -141,22 +144,22 @@ const handleAddForm = async () => {
formRef.value.validate((valid) => {
if (valid) {
if (Number(addForm.value.permanentBean) === 0 && Number(addForm.value.freeBean) === 0) {
- reject(new Error('付费金豆和免费金豆不能同时为0'));
+ reject(new Error(t('elmessage.noPayBeanFreeBeanZero')));
}
resolve(); // 验证通过,继续执行后续代码
} else {
- reject(new Error('请检查并完善表单信息')); // 验证失败,抛出错误
+ reject(new Error(t('elmessage.checkFormInfo'))); // 验证失败,抛出错误
}
});
});
console.log('adminData', adminData.value);
await ElMessageBox.confirm(
- '确认充值吗?',
- '提示',
+ t('recharge.confirmRecharge'),
+ t('recharge.prompt'),
{
- confirmButtonText: '确认',
- cancelButtonText: '取消',
+ confirmButtonText: t('common.confirm'),
+ cancelButtonText: t('common.cancel'),
type: "primary",
lockScroll: false,
}
@@ -174,7 +177,7 @@ const handleAddForm = async () => {
})
addDisabled.value = false
if (result.code == 200) {
- ElMessage.success('新增成功')
+ ElMessage.success(t('elmessage.addsuccess'))
deleteAddForm()
user.value = {}
} else {
@@ -182,7 +185,7 @@ const handleAddForm = async () => {
}
} catch (error) {
console.log('金豆新增充值失败');
- ElMessage.error(error.message || '操作取消');
+ ElMessage.error(error.message || t('elmessage.cancelOperation'));
}
}
@@ -191,22 +194,22 @@ const handleAddForm = async () => {
-
+
- 查询
+ {{ t('common.search') }}
-
+
-
+
-
+
- 重置
- 提交
+ {{ t('common.reset') }}
+ {{ t('common.submit') }}
@@ -215,12 +218,12 @@ const handleAddForm = async () => {
- 客户信息
+ {{ t('common_add_user.customerInfo') }}
-
姓名:
+
{{ t('common_add_user.name') }}:
{{ user.name }}
-
当前付费金豆:
+
{{ t('common_add_user.currentPayableBean') }}:
{{ Number(user.permanentBean) }}
@@ -228,17 +231,17 @@ const handleAddForm = async () => {
-
精网号:
+
{{ t('common.jwcode') }}:
{{ user.jwcode }}
-
当前免费金豆:
+
{{ t('common_add_user.currentFreeBean') }}:
{{ user.freeBean }}
-
所属门店:
+
{{ t('common_add_user.store') }}:
{{ user.market }}
-
消耗金豆总数:
+
{{ t('common_add_user.consumeTotalBean') }}:
{{ user.consumeSum }}
{{ 0 }}
diff --git a/src/views/recharge/bean/beanOnlineRecharge.vue b/src/views/recharge/bean/beanOnlineRecharge.vue
index 567839a..58276b7 100644
--- a/src/views/recharge/bean/beanOnlineRecharge.vue
+++ b/src/views/recharge/bean/beanOnlineRecharge.vue
@@ -6,6 +6,8 @@ import { AiFillRead } from 'vue-icons-plus/ai'
import axios from 'axios'
import moment from 'moment'
import API from '@/util/http.js'
+import {useI18n} from 'vue-i18n'
+const { t } = useI18n()
const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0),
@@ -73,7 +75,7 @@ const getArea = async () => {
market.value = result.data
console.log('线上充值地区获取成功', market.value)
} else {
- ElMessage.error('线上充值地区获取失败')
+ ElMessage.error(t('elmessage.onlineRechargeAreaError'))
}
}
//获取今天日期
@@ -156,7 +158,7 @@ const search = () => {
if (selectData.value.jwcode) {
const numRef = /^\d{1,9}$/;
if (!numRef.test(selectData.value.jwcode)) {
- ElMessage.error('请检查精网号格式')
+ ElMessage.error(t('elmessage.checkJwcodeFormat'))
return
}
}
@@ -205,7 +207,7 @@ const platform = [
},
{
value: 2,
- label: '手机'
+ label: t('recharge.mobile')
}
]
//排序字段
@@ -258,13 +260,13 @@ const exportExcel = async () => {
try {
const res = await API({ url: '/export/exportol', data: params })
if (res.code === 200) {
- ElMessage.success('导出成功')
+ ElMessage.success(t('elmessage.exportSuccess'))
} else {
- ElMessage.error(res.message || '导出失败,请稍后重试')
+ ElMessage.error(res.message || t('elmessage.exportFailed'))
}
} catch (error) {
console.log('请求失败', error)
- ElMessage.error('导出失败,请稍后重试')
+ ElMessage.error(t('elmessage.exportFailed'))
}
}
const exportListVisible = ref(false)
@@ -294,7 +296,7 @@ const getExportList = async () => {
}
} catch (error) {
console.error('获取导出列表出错:', error)
- ElMessage.error('获取导出列表失败,请稍后重试')
+ ElMessage.error(t('elmessage.getExportListError'))
} finally {
exportListLoading.value = false
}
@@ -307,7 +309,7 @@ const downloadExportFile = (item) => {
link.download = item.fileName
link.click()
} else {
- ElMessage.warning('文件还在导出中,请稍后再试')
+ ElMessage.warning(t('elmessage.exportingInProgress'))
}
}
//根据状态返回对应的标签类型
@@ -329,15 +331,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');
}
}
const format3 = (num) => {
@@ -355,22 +357,22 @@ onMounted(async function () {
- 精网号:
-
+ {{ t('common.jwcode') }}:
+
- 所属地区:
-
+ {{ t('common.market') }}:
+
- 订单号:
-
+ {{ t('common.orderNo') }}:
+
- 充值平台:
-
+ {{ t('common.rechargePlatform') }}:
+
@@ -379,9 +381,9 @@ onMounted(async function () {
-
充值时间:
-
{{ t('common.rechargeTime') }}:
+
- 查询
- 导出Excel
- 查看导出列表
- 重置
+ {{ t('common.search') }}
+ {{ t('common.exportExcel') }}
+ {{ t('common.viewExportList') }}
+ {{ t('common.reset') }}
- 充值金豆数:{{ format3(num) }} 合计新币数:{{ format3(money) }}
+ {{ t('common.rechargeGoldBean') }}{{ format3(num) }} {{ t('common.totalRechargeSGD') }}{{ format3(money) }}
-
+
{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}
-
-
-
-
-
-
-
+
+
+
+
+
+
+
PC
- 手机
- 其他
+ {{ t('common_list.mobile') }}
+ {{ t('common_list.other') }}
-
+
{{ moment(scope.row.rechargeTime).format('YYYY-MM-DD HH:mm:ss') }}
@@ -449,33 +451,33 @@ onMounted(async function () {
-
+
-
-
+
+
{{ getTagText(scope.row.state) }}
-
+
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
-
+
- 下载
+ {{ t('common_export.download') }}
diff --git a/src/views/recharge/bean/beanRecharge.vue b/src/views/recharge/bean/beanRecharge.vue
index 052214c..f77fbc4 100644
--- a/src/views/recharge/bean/beanRecharge.vue
+++ b/src/views/recharge/bean/beanRecharge.vue
@@ -6,24 +6,24 @@
:class="{ 'active-btn': activeTab === 'addBeanRecharge' }"
@click="navigateTo('addBeanRecharge')"
v-if="hasAdd"
- style="width: 6.5vw">
- 新增充值
+ style="min-width: 6.5vw">
+ {{ t('recharge.addBeanRecharge') }}
- 系统充值
+ style="min-width: 6.5vw">
+ {{ t('recharge.systemRecharge') }}
- 线上充值
+ style="min-width: 6.5vw;">
+ {{ t('recharge.onlineRecharge') }}
@@ -37,6 +37,9 @@ import {useRouter, useRoute} 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 { t } = useI18n();
+
const router = useRouter();
const route = useRoute();
diff --git a/src/views/recharge/bean/beanSystemRecharge.vue b/src/views/recharge/bean/beanSystemRecharge.vue
index 7449e23..0756c26 100644
--- a/src/views/recharge/bean/beanSystemRecharge.vue
+++ b/src/views/recharge/bean/beanSystemRecharge.vue
@@ -10,6 +10,8 @@ import { useAdminStore } from "@/store/index.js";
import { storeToRefs } from "pinia";
const adminStore = useAdminStore();
const { adminData, menuTree,flag } = storeToRefs(adminStore);
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n()
// 监听全局flag状态变化
watch(flag, (newFlag, oldFlag) => {
@@ -87,7 +89,7 @@ const getArea = async () => {
market.value = result.data
console.log('系统充值地区获取成功', market.value)
} else {
- ElMessage.error('系统充值地区获取失败')
+ ElMessage.error(t('elmessage.systemRechargeAreaError'))
}
}
//获取今天日期
@@ -169,7 +171,7 @@ const search = () => {
if (selectData.value.jwcode) {
const numRef = /^\d{1,9}$/;
if (!numRef.test(selectData.value.jwcode)) {
- ElMessage.error('请检查精网号格式')
+ ElMessage.error(t('elmessage.checkJwcodeFormat'))
return
}
}
@@ -262,13 +264,13 @@ const exportExcel = async () => {
console.log('系统充值导出的参数为:', params);
if (res.code === 200) {
- ElMessage.success('导出成功')
+ ElMessage.success(t('elmessage.exportSuccess'))
} else {
- ElMessage.error(res.message || '导出失败,请稍后重试')
+ ElMessage.error(res.message || t('elmessage.exportFailed'))
}
} catch (error) {
console.log('请求失败', error)
- ElMessage.error('导出失败,请稍后重试')
+ ElMessage.error(t('elmessage.exportFailed'))
}
}
const exportListVisible = ref(false)
@@ -294,11 +296,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
}
@@ -311,7 +313,7 @@ const downloadExportFile = (item) => {
link.download = item.fileName
link.click()
} else {
- ElMessage.warning('文件还在导出中,请稍后再试')
+ ElMessage.warning(t('elmessage.exportingInProgress'))
}
}
//根据状态返回对应的标签类型
@@ -333,15 +335,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');
}
}
const format3 = (num) => {
@@ -359,12 +361,12 @@ onMounted(async function () {
- 精网号:
-
+ {{ t('common.jwcode') }}:
+
- 所属地区:
-
+ {{ t('common.market') }}:
+
@@ -373,9 +375,9 @@ onMounted(async function () {
-
充值时间:
-
{{ t('common.rechargeTime') }}:
+
-
查询
-
导出Excel
-
查看导出列表
-
重置
+
{{ t('common.search') }}
+
{{ t('common.exportExcel') }}
+
{{ t('common.viewExportList') }}
+
{{ t('common.reset') }}
- 金豆总数:{{ format3(beanNum) }}
- 付费金豆数:{{ format3(permanentBeans) }}
- 免费金豆数:{{ format3(freeBean) }}
+ {{ t('common.totalGoldBean') }}{{ format3(beanNum) }}
+ {{ t('common.payGoldBean') }}{{ format3(permanentBeans) }}
+ {{ t('common.freeGoldBean') }}{{ format3(freeBean) }}
-
+
{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}
-
-
-
-
-
-
-
+
+
+
+
+
+
+
{{ moment(scope.row.rechargeTime).format('YYYY-MM-DD HH:mm:ss') }}
@@ -435,33 +437,33 @@ onMounted(async function () {
-
+
-
-
+
+
{{ getTagText(scope.row.state) }}
-
+
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
-
+
- 下载
+ {{ t('common_export.download') }}