Browse Source

feat: 修改汇率相关文本和修改按钮文本,添加国际化支持

milestone-20251209-多语言二期^2
zhangrenyuan 1 month ago
parent
commit
ecdebd5190
  1. 18
      src/components/locales/lang/zh-CN.js
  2. 2
      src/views/audit/bean/beanAudit.vue
  3. 83
      src/views/managerecharge/rate.vue

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

@ -47,6 +47,7 @@ export default {
cancel: '取消',
confirm: '确认',
submit: '提交',
modify: '修改',
confirmRecharge: '确认充值',
// 按钮组-日期
today: '今',
@ -154,6 +155,14 @@ export default {
getMarketListFailed: '获取市场列表失败,请稍后重试',
getChartDataFailed: '获取图表数据失败,请稍后重试',
renderChartFailed: '图表渲染失败,请稍后重试',
// 汇率相关
pleaseInputRate: '请输入汇率比例',
pleaseInputCorrectRateFormat: '请输入正确的汇率比例格式',
pleaseInputCorrectSymbol: '请输入正确的符号',
onlyOneDecimalPoint: '只能包含一个小数点',
noNegativeNumber: '不允许输入负数',
integerPartLimit: '整数部分最多允许六位',
decimalPartLimit: '小数部分最多允许七位',
},
// 通用列表字段组
@ -174,6 +183,7 @@ export default {
refundGoldCoin: '退款金币总数',
activity: '活动名称',
rateName: '货币名称',
num: '汇率',
rechargeAmount: '充值金额',
Gold: '金币数量',
freeGold6Month: '6月份到期免费金币',
@ -192,6 +202,7 @@ export default {
consumeTime: '消耗时间',
refundTime: '退款时间',
updateTime: '更新时间',
operation: '操作',
},
// 通用导出字段组
common_export: {
@ -506,5 +517,12 @@ export default {
all: '总',
marketTitle: '数据说明',
marketContent: '若统计周期跨越 40 天以上,将展示月份维度的数据。',
},
// 汇率组
rate: {
modifyRate: '修改汇率',
prompt1: '提示:当前规则每',
prompt2: '可兑换 1 新币',
}
}

2
src/views/audit/bean/beanAudit.vue

@ -19,7 +19,7 @@
<div class="selectRow" style="width: 36vw;">
<el-text class="text" size="large" v-show="checkTab === 'pending'">{{ $t('common.submitTime') }}</el-text>
<el-text class="text" size="large" v-show="checkTab === 'reject' || checkTab === 'pass'">{{ $t('common.auditTime') }}</el-text>
<el-date-picker v-model="dateRange" type="datetimerange" range-separator="" :start-placeholder="$t('common.startTime')"
<el-date-picker v-model="dateRange" type="datetimerange" :range-separator="t('common.to')" :start-placeholder="$t('common.startTime')"
:end-placeholder="$t('common.endTime')" class="selectContent" style="width: 25vw;margin-right:1vw"
@change="handleDatePickerChange" :default-time="defaultTime" />
<!-- <el-button @click="getToday()" :type="activeTimeRange === 'today' ? 'primary' : ''"></el-button>-->

83
src/views/managerecharge/rate.vue

@ -1,13 +1,16 @@
<script setup>
import {onMounted, reactive, ref} from 'vue'
import {ElMessage, ElMessageBox} from 'element-plus'
import { onMounted, reactive, ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import request from '@/util/http'
import {useAdminStore} from "@/store/index.js";
import {storeToRefs} from "pinia";
import {permissionMapping, hasMenuPermission} from "@/utils/menuTreePermission.js"
import { useAdminStore } from "@/store/index.js";
import { storeToRefs } from "pinia";
import { permissionMapping, hasMenuPermission } from "@/utils/menuTreePermission.js"
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
const adminStore = useAdminStore()
const {adminData, menuTree} = storeToRefs(adminStore)
const { adminData, menuTree } = storeToRefs(adminStore)
const regeEdit = ref(false)
const editFormRef = ref(null)
const tableData = ref([])
@ -66,16 +69,16 @@ const rateNames = [
//
const checkFreeGoldRadio = function (rule, value, callback) {
if (value == '0' || value == null || value == '') {
callback(new Error('请输入汇率比'))
callback(new Error(t('elmessage.pleaseInputRate')))
} else if (value < 0 || isNaN(value)) {
callback(new Error('请输入正确的格式'))
callback(new Error(t('elmessage.pleaseInputCorrectRateFormat')))
} else {
callback()
}
}
//
const rules = reactive({
num: [{validator: checkFreeGoldRadio, trigger: 'blur'}],
num: [{ validator: checkFreeGoldRadio, trigger: 'blur' }],
})
//
const formSize = ref('default')
@ -94,7 +97,7 @@ const getAllRate = async function (val) {
total.value = result.data.total
} catch (error) {
console.log('请求失败', error);
ElMessage.error('请求失败');
ElMessage.error(t('elmessage.requestFailed'));
}
}
const handlePageSizeChange = function (val) {
@ -110,7 +113,7 @@ const getEditData = async function (row) {
console.log('搜索参数', getObj.value)
const result = await request({
url: '/rate/selectById',
data: {id: row.id}
data: { id: row.id }
})
console.log('根据id查 请求成功', result)
rateEdit.value.id = row.id
@ -135,7 +138,7 @@ const initPermissions = () => {
//
const editRate = async function () {
if (!hasrateEdit) {
ElMessage.error('暂无权限')
ElMessage.error(t('elmessage.noPermission'))
return
}
//
@ -200,18 +203,18 @@ function formatDate(value) {
function handleInput(value) {
// 使
if (value.includes('。') || /[^\d.]/g.test(value)) {
ElMessage.warning('请输入正确的符号');
ElMessage.warning(t('elmessage.pleaseInputCorrectSymbol'));
// value = value.replace('', '.');
}
//
const parts = value.split('.');
if (parts.length > 2) {
value = parts[0] + '.' + parts.slice(1).join('');
ElMessage.warning('只能包含一个小数点');
ElMessage.warning(t('elmessage.onlyOneDecimalPoint'));
}
//
if (value.startsWith('-')) {
ElMessage.warning('不允许输入负数');
ElMessage.warning(t('elmessage.noNegativeNumber'));
value = value.substring(1);
}
//
@ -220,13 +223,13 @@ function handleInput(value) {
//
if (parts[0].length > 6) {
parts[0] = parts[0].slice(0, 6)
ElMessage.info('整数部分最多允许六位')
ElMessage.info(t('elmessage.integerPartLimit'))
}
//
if (parts[1].length > 7) {
parts[1] = parts[1].slice(0, 7)
value = parts[0] + '.' + parts[1]
ElMessage.info('最多允许七位小数')
ElMessage.info(t('elmessage.decimalPartLimit'))
} else {
value = parts[0] + '.' + parts[1]
}
@ -234,7 +237,7 @@ function handleInput(value) {
//
if (value.length > 6) {
value = value.slice(0, 6)
ElMessage.info('整数部分最多允许六位')
ElMessage.info(t('elmessage.integerPartLimit'))
}
}
// 0
@ -258,15 +261,15 @@ onMounted(async function () {
<template>
<el-card class="card2" style="width:81vw;height:92vh" v-if="hasrateShow">
<el-table :data="tableData" v-if="(tableData.flag = 1)">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<el-table-column type="index" :label="t('common_list.id')" width="100px" fixed="left">
<template #default="scope">
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template>
</el-table-column>
<el-table-column prop="rateName" label="货币名称" :span="2"/>
<el-table-column prop="num" label="汇率" :span="2">
<el-table-column prop="rateName" :label="t('common_list.rateName')" :span="2" />
<el-table-column prop="num" :label="t('common_list.num')" :span="2">
<template #default="scope">
<p>
{{ scope.row.num }} 1
@ -274,17 +277,17 @@ onMounted(async function () {
</template>
</el-table-column>
<el-table-column prop="updateTime" label="更新时间" :span="3">
<el-table-column prop="updateTime" :label="t('common_list.updateTime')" :span="3">
<template #default="scope">
<span>{{ formatDate(scope.row.updateTime) }}</span>
</template>
</el-table-column>
<el-table-column v-if="hasrateEdit" label="操作" :span="3">
<el-table-column v-if="hasrateEdit" :label="t('common_list.operation')" :span="3">
<template #default="scope">
<el-link :underline="false" class="edit-btn" @click="() => {
regeEdit = true
getEditData(scope.row)
}">编辑
}">{{ t('common.edit') }}
</el-link>
</template>
</el-table-column>
@ -299,34 +302,34 @@ onMounted(async function () {
</el-card>
<!-- 这是编辑弹窗 -->
<el-dialog align-center v-model="regeEdit" title="修改汇率" width="30vw" :close-on-click-modal="false"
<el-dialog align-center v-model="regeEdit" :title="t('rate.modifyRate')" width="30vw" :close-on-click-modal="false"
@close="handleEditDialogClose">
<el-form ref="editFormRef" :model="rateEdit" :rules="rules" label-width="auto" class="edit-form" :size="formSize"
status-icon>
<el-form-item prop="rateName" label="货币名称:">
<el-input v-model="rateEdit.rateName" disabled style="width: 10vw"/>
<el-form-item prop="rateName" :label="t('common_list.rateName')">
<el-input v-model="rateEdit.rateName" disabled style="width: 10vw" />
</el-form-item>
<el-form-item prop="num" label="汇率:">
<el-input v-model="rateEdit.num" @update:modelValue="handleInput" style="width: 120px"/>
<el-form-item prop="num" :label="t('common_list.num')">
<el-input v-model="rateEdit.num" @update:modelValue="handleInput" style="width: 120px" />
<span class="unit">:1</span>
<span class="rate-tip">
(提示当前规则每
<span>{{ rateEdit.num }}</span>
<span>{{ rateEdit.rateName }}</span>可兑换 1 新币)
</span>
</el-form-item>
<div class="rate-tip">
{{ t('rate.prompt1') }}
<span>{{ rateEdit.num }}</span>
<span>{{ rateEdit.rateName }}</span>{{ t('rate.prompt2') }}
</div>
</el-form>
<div class="dialog-footer">
<el-button type="primary" @click="edit">修改</el-button>
<el-button @click="cancelEdit">取消</el-button>
<el-button type="primary" @click="edit">{{ t('common.modify') }}</el-button>
<el-button @click="cancelEdit">{{ t('common.cancel') }}</el-button>
</div>
</el-dialog>
</template>
<style scoped>
.card1 {
background: #F3FAFE;
}
@ -334,7 +337,7 @@ onMounted(async function () {
:deep(.el-table__header-wrapper),
:deep(.el-table__body-wrapper),
:deep(.el-table__cell),
/* 表格 */
/* 表格 */
:deep(.el-table__body td) {
background-color: #F3FAFE !important;
}
@ -371,6 +374,7 @@ onMounted(async function () {
.rate-tip {
hyphens: auto;
margin-left: 1.4vw;
}
/**表单的卡片样式**/
@ -383,7 +387,7 @@ onMounted(async function () {
:deep(.el-table__header-wrapper),
:deep(.el-table__body-wrapper),
:deep(.el-table__cell),
/* 表格 */
/* 表格 */
:deep(.el-table__body td) {
background-color: #F3FAFE !important;
}
@ -397,5 +401,4 @@ onMounted(async function () {
:deep(.el-table__row:hover > .el-table__cell) {
background-color: #E5EBFE !important;
}
</style>
Loading…
Cancel
Save