Browse Source

feat: 完成客户金币的中文语言包,至此本期需求所有中文语言包添加完成!

huangqizheng/feature-20251213090502-现金退款多语言
zhangrenyuan 1 month ago
parent
commit
29144efa0a
  1. 36
      src/components/locales/lang/zh-CN.js
  2. 6
      src/views/usergold/gold/clientCount.vue
  3. 85
      src/views/usergold/gold/clientCountBalance.vue
  4. 133
      src/views/usergold/gold/clientCountDetail.vue

36
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: '退款',
}
},
}

6
src/views/usergold/gold/clientCount.vue

@ -10,7 +10,7 @@
:disabled="!hasDetail"
v-if="hasDetail"
>
金币明细
{{ $t('clientCount.clientCountDetail') }}
</el-button>
<el-button
class="no-active-btn"
@ -18,7 +18,7 @@
@click="navigateTo('clientCountBalance')"
:disabled="!hasBalance" v-if="hasBalance"
>
金币余额
{{ $t('clientCount.clientCountBalance') }}
</el-button>
</el-button-group>
<!-- 渲染子路由组件 -->
@ -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();

85
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) => {
<el-card class="card1" style="margin-bottom: 1vh;">
<div class="head-card">
<div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text>
<el-input v-model="user.jwcode" style="width: 160px" placeholder="请输入精网号" clearable />
<el-text class="mx-1" size="large">{{ $t('common.jwcode') }}</el-text>
<el-input v-model="user.jwcode" style="width: 160px" :placeholder="$t('common.jwcodePlaceholder')" clearable />
</div>
<div class="head-card-element">
<el-text class="mx-1" size="large">所属地区</el-text>
<el-cascader v-model="selectedMarketPath" :options="markets" placeholder="请选择所属地区" clearable style="width:180px"
<el-text class="mx-1" size="large">{{ $t('common.market') }}</el-text>
<el-cascader v-model="selectedMarketPath" :options="markets" :placeholder="$t('common.marketPlaceholder')" clearable style="width:180px"
@change="handleMarketChange" />
</div>
<div class="head-card-element">
<!-- <el-checkbox v-model="showEmployeeData" @change="search()">员工数据</el-checkbox> -->
</div>
<el-button type="primary" @click="search()">查询</el-button>
<el-button type="primary" @click="exportExcel()">导出Excel</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
<el-button @click="reset" type="success">重置</el-button>
<el-button type="primary" @click="search()">{{ $t('common.search') }}</el-button>
<el-button type="primary" @click="exportExcel()">{{ $t('common.exportExcel') }}</el-button>
<el-button type="primary" @click="openExportList">{{ $t('common.viewExportList') }}</el-button>
<el-button @click="reset" type="success">{{ $t('common.reset') }}</el-button>
</div>
<!-- </div> -->
</el-card>
<el-card class="card2">
<div class="goldStatistics">
金币总数{{ format3(goldtotal || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ format3(permanentGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ format3(freeGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
任务金币{{ format3(taskGold || 0) }}
{{ $t('common.totalGoldCoin') }}{{ format3(goldtotal || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
{{ $t('common.permanentGold') }}{{ format3(permanentGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
{{ $t('common.freeGold') }}{{ format3(freeGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
{{ $t('common.taskGold') }}{{ format3(taskGold || 0) }}
</div>
<!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 69vh; overflow-y: auto">
<el-table :data="tableData" @cellClick="cellClick" style="width: 82vw; height:69vh"
@sort-change="handleSortChange" :row-style="{ height: '50px' }">
<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="name" label="姓名" width="140" />
<el-table-column prop="jwcode" label="精网号" width="160" />
<el-table-column prop="market" label="所属地区" width="140" />
<el-table-column prop="sumGold" label="金币总数" width="140" aligh="center">
<el-table-column prop="name" :label="$t('common_list.name')" width="140" />
<el-table-column prop="jwcode" :label="$t('common_list.jwcode')" width="160" />
<el-table-column prop="market" :label="$t('common_list.market')" width="140" />
<el-table-column prop="sumGold" :label="$t('common_list.sumGold')" width="140" aligh="center">
<!-- <template #default="scope">
<span>{{
((scope.row.currentPermanentGold || 0) +
@ -444,22 +447,22 @@ const format3 = (num) => {
}}</span>
</template> -->
</el-table-column>
<el-table-column prop="currentPermanentGold" label="永久金币" sortable="custom" width="150">
<el-table-column prop="currentPermanentGold" :label="$t('common_list.permanentGold')" sortable="custom" width="150">
<template #default="scope">
<span>{{ (scope.row.currentPermanentGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="currentFreeJune" label="6月份到期免费金币" sortable="custom" width="170">
<el-table-column prop="currentFreeJune" :label="$t('common_list.freeGold6Month')" sortable="custom" width="170">
<template #default="scope">
<span>{{ (scope.row.currentFreeJune || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="currentFreeDecember" label="12月份到期免费金币" sortable="custom" width="180">
<el-table-column prop="currentFreeDecember" :label="$t('common_list.freeGold12Month')" sortable="custom" width="180">
<template #default="scope">
<span>{{ (scope.row.currentFreeDecember || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="currentTaskGold" label="任务金币" sortable="custom" width="180">
<el-table-column prop="currentTaskGold" :label="$t('common_list.taskGold')" sortable="custom" width="180">
<template #default="scope">
<span>{{ (scope.row.currentTaskGold || 0) }}</span>
</template>
@ -520,33 +523,33 @@ const format3 = (num) => {
@current-change="handleCurrentChange"></el-pagination>
</div>
</el-card>
<el-dialog v-model="exportListVisible" title="导出列表" width="80%">
<el-dialog v-model="exportListVisible" :title="$t('common_export.exportList')" width="80%">
<el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading">
<el-table-column prop="fileName" label="文件名" />
<el-table-column prop="state" label="状态">
<el-table-column prop="fileName" :label="$t('common_export.fileName')" />
<el-table-column prop="state" :label="$t('common_export.status')">
<template #default="scope">
<el-tag :type="getTagType(scope.row.state)" :effect="scope.row.state === 3 ? 'light' : 'plain'">
{{ getTagText(scope.row.state) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间">
<el-table-column prop="createTime" :label="$t('common_export.createTime')">
<template #default="scope">
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
</template>
</el-table-column>
<el-table-column label="操作">
<el-table-column :label="$t('common_export.operation')">
<template #default="scope">
<el-button type="primary" size="small" @click="downloadExportFile(scope.row)"
:disabled="scope.row.state !== 2">
下载
{{ $t('common_export.download') }}
</el-button>
</template>
</el-table-column>
</el-table>
<template #footer>
<div class="dialog-footer">
<el-button text @click="exportListVisible = false">关闭</el-button>
<el-button text @click="exportListVisible = false">{{ $t('common_export.close') }}</el-button>
</div>
</template>
</el-dialog>

133
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) => {
<el-col style="margin-bottom: 1vh">
<div class="select">
<div class="selectRow">
<el-text class="text" size="large">精网号</el-text>
<el-input class="selectContent" v-model="goldDetail.jwcode" placeholder="请输入精网号" clearable />
<el-text class="text" size="large">{{ $t('common.jwcode') }}</el-text>
<el-input class="selectContent" v-model="goldDetail.jwcode" :placeholder="$t('common.jwcodePlaceholder')" clearable />
</div>
<div class="selectRow">
<el-text class="text" size="large">平台信息</el-text>
<el-select class="selectContent" v-model="goldDetail.payPlatform" placeholder="请选择平台信息" style="width: 10vw;"
<el-text class="text" size="large">{{ $t('common.payPlatform') }}</el-text>
<el-select class="selectContent" v-model="goldDetail.payPlatform" :placeholder="$t('common.payPlatformPlaceholder')" style="width: 10vw;"
clearable :loading="isLoadingPlatform">
<el-option v-for="item in platform" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</div>
<div class="selectRow">
<el-text class="textB" size="large">数量更新类型</el-text>
<el-select v-model="goldDetail.type" placeholder="请选择更新类型" clearable>
<el-text class="textB" size="large">{{ $t('common.updateType') }}</el-text>
<el-select v-model="goldDetail.type" :placeholder="$t('common.updateTypePlaceholder')" clearable>
<el-option v-for="item in type" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
<div class="selectRow">
<el-text size="large">所属地区</el-text>
<el-cascader class="selectContent" v-model="selectedMarketPath" :options="markets" placeholder="请选择所属地区"
<el-text size="large">{{ $t('common.market') }}</el-text>
<el-cascader class="selectContent" v-model="selectedMarketPath" :options="markets" :placeholder="$t('common.marketPlaceholder')"
style="width:10vw" clearable @change="handleMarketChange" />
</div>
<!-- <div>
@ -512,84 +516,85 @@ const format3 = (num) => {
<el-col>
<div class="select">
<div class="selectRow" style="width: 35vw">
<el-text class="text" size="large">更新时间</el-text>
<el-date-picker class="selectContent" v-model="getTime" type="datetimerange" range-separator=""
start-placeholder="起始时间" end-placeholder="结束时间" style="width: 20vw" @change="handleDatePickerChange"
<el-text class="text" size="large">{{ $t('common.updateTime') }}</el-text>
<el-date-picker class="selectContent" v-model="getTime" type="datetimerange" :range-separator="$t('common.to')"
:start-placeholder="$t('common.startTime')" :end-placeholder="$t('common.endTime')" style="width: 20vw" @change="handleDatePickerChange"
:default-time="defaultTime" :disabled-date="disabledDate" />
<el-button @click="getToday()" style="margin-left: 0.3vw"
:type="activeTimeRange === 'today' ? 'primary' : ''">
{{ $t('common.today') }}
</el-button>
<el-button @click="getYesterday()" style="margin-left: 0.3vw"
:type="activeTimeRange === 'yesterday' ? 'primary' : ''">
:type="activeTimeRange === 'yesterday' ? 'primary' : ''">
{{ $t('common.yesterday') }}
</el-button>
<el-button @click="get7Days()" style="margin-left: 0.3vw"
:type="activeTimeRange === '7days' ? 'primary' : ''">
近7天
{{ $t('common.last7Days') }}
</el-button>
</div>
<div class="selectRow" style="justify-content: flex-start;">
<el-button type="primary" @click="search()">查询</el-button>
<el-button type="primary" @click="exportExcel">导出Excel表格</el-button>
<el-button type="primary" @click="openExportList">查看导出列表</el-button>
<el-button type="success" @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">{{ $t('common.search') }}</el-button>
<el-button type="primary" @click="exportExcel">{{ $t('common.exportExcel') }}</el-button>
<el-button type="primary" @click="openExportList">{{ $t('common.viewExportList') }}</el-button>
<el-button type="success" @click="reset()">{{ $t('common.reset') }}</el-button>
</div>
</div>
</el-col>
</el-card>
<el-card class="card2">
<div class="goldStatistics">
金币净变化{{ format3(totalGoldTotal || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ format3(totalPermanentGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ format3(totalFreeGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
任务金币{{ format3(totalTaskGold || 0) }}&nbsp;&nbsp;
<a style="color:#b1b1b1; font-size: small;">当前合计仅显示筛选范围内的金币净变化充值总额 - 消费总额 + 退款总额</a>
{{ $t('common.netGoldChange') }}{{ format3(totalGoldTotal || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
{{ $t('common.permanentGold') }}{{ format3(totalPermanentGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
{{ $t('common.freeGold') }}{{ format3(totalFreeGold || 0) }}&nbsp;&nbsp;&nbsp;&nbsp;
{{ $t('common.taskGold') }}{{ format3(totalTaskGold || 0) }}&nbsp;&nbsp;
<a style="color:#b1b1b1; font-size: small;">{{ $t('common.netGoldChangeTip') }}</a>
</div>
<div style="height: 65vh; ">
<el-table :data="tableData" style="height: 65vh" @sort-change="handleSortChange" :row-style="{ height: '50px' }">
<el-table-column type="index" label="序号" width="80px" fixed="left">
<el-table-column type="index" :label="$t('common_list.id')" width="80px" fixed="left">
<template #default="scope">
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template>
</el-table-column>
<el-table-column fixed="left" prop="name" label="姓名" width="150" show-overflow-tooltip />
<el-table-column fixed="left" prop="jwcode" label="精网号" width="120" />
<el-table-column prop="market" label="所属地区" width="120" />
<el-table-column prop="payPlatform" label="平台信息" width="140" />
<el-table-column prop="type" label="更新类型" width="110">
<el-table-column fixed="left" prop="name" :label="$t('common_list.name')" width="150" show-overflow-tooltip />
<el-table-column fixed="left" prop="jwcode" :label="$t('common_list.jwcode')" width="120" />
<el-table-column prop="market" :label="$t('common_list.market')" width="120" />
<el-table-column prop="payPlatform" :label="$t('common_list.payPlatform')" width="140" />
<el-table-column prop="type" :label="$t('common_list.type')" width="110">
<template #default="scope">
<span v-if="scope.row.type === 0">充值</span>
<span v-if="scope.row.type === 1">消耗</span>
<span v-if="scope.row.type === 2">退款</span>
<span v-if="scope.row.type === 3">其他</span>
<span v-if="scope.row.type === 0">{{ $t('clientCount.recharge') }}</span>
<span v-if="scope.row.type === 1">{{ $t('clientCount.consume') }}</span>
<span v-if="scope.row.type === 2">{{ $t('clientCount.refund') }}</span>
<span v-if="scope.row.type === 3">{{ $t('clientCount.other') }}</span>
</template>
</el-table-column>
<el-table-column prop="sumGold" sortable="custom" label="金币数量" width="110">
<el-table-column prop="sumGold" sortable="custom" :label="$t('common_list.Gold')" width="110">
<template #default="scope">
<span>{{ (scope.row.sumGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="permanentGold" sortable="custom" label="永久金币" width="110">
<el-table-column prop="permanentGold" sortable="custom" :label="$t('common_list.permanentGold')" width="110">
<template #default="scope">
<span>{{ (scope.row.permanentGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="freeGold" sortable="custom" label="免费金币" width="110">
<el-table-column prop="freeGold" sortable="custom" :label="$t('common_list.freeGold')" width="110">
<template #default="scope">
<span>{{ (calculateFreeGold(scope.row) || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="taskGold" sortable="custom" label="任务金币" width="110">
<el-table-column prop="taskGold" sortable="custom" :label="$t('common_list.taskGold')" width="110">
<template #default="scope">
<span>{{ (scope.row.taskGold || 0) }}</span>
</template>
</el-table-column>
<el-table-column prop="adminName" label="提交人" width="110" />
<el-table-column prop="auditTime" sortable="custom" label="更新时间" width="210" show-overflow-tooltip>
<el-table-column prop="adminName" :label="$t('common_list.submitter')" width="110" />
<el-table-column prop="auditTime" sortable="custom" :label="$t('common_list.updateTime')" width="210" show-overflow-tooltip>
<template #default="scope">
<span>{{
moment(scope.row.auditTime).format('YYYY-MM-DD HH:mm:ss')
@ -608,33 +613,35 @@ const format3 = (num) => {
</el-card>
<!-- 导出列表弹窗 -->
<el-dialog v-model="exportListVisible" title="导出列表" width="80%">
<el-dialog v-model="exportListVisible" :title="$t('common_export.exportList')" width="80%">
<el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading">
<el-table-column prop="fileName" label="文件名" />
<el-table-column prop="state" label="状态">
<el-table-column prop="fileName" :label="$t('common_export.fileName')" />
<el-table-column prop="state" :label="$t('common_export.status')">
<template #default="scope">
<el-tag :type="getTagType(scope.row.state)" :effect="scope.row.state === 3 ? 'light' : 'plain'">
{{ getTagText(scope.row.state) }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间">
<el-table-column prop="createTime" :label="$t('common_export.createTime')">
<template #default="scope">
{{ moment(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
</template>
</el-table-column>
<el-table-column label="操作">
<el-table-column :label="$t('common_export.operation')">
<template #default="scope">
<el-button type="primary" size="small" @click="downloadExportFile(scope.row)"
:disabled="scope.row.state !== 2">
下载
{{ $t('common_export.download') }}
</el-button>
</template>
</el-table-column>
</el-table>
<template #footer>
<div class="dialog-footer">
<el-button text @click="exportListVisible = false">关闭</el-button>
<el-button text @click="exportListVisible = false">
{{ $t('common_export.close') }}
</el-button>
</div>
</template>
</el-dialog>

Loading…
Cancel
Save