Browse Source

phase 1 bugs have been resolved

zhangrenyuan/feature-20250623164058-金币前端
zry 13 hours ago
parent
commit
bbcebc4421
  1. 7
      .env.development
  2. 2
      .env.production
  3. 12
      src/util/request.js
  4. 329
      src/views/recharge/addCoinRecharge.vue
  5. 16
      src/views/recharge/coinRechargeDetail.vue
  6. 162
      src/views/refund/addCoinRefund.vue
  7. 77
      src/views/usergold/clientCountDetail.vue

7
.env.development

@ -1,5 +1,8 @@
# VITE_API_BASE='https://hwjb.homilychart.com/admin/'
VITE_API_BASE='https://hwjb.homilychart.com/admin/'
# VITE_API_BASE='https://hwjb.homilychart.com/gold_htms_dev'
VITE_API_BASE='http://192.168.8.242:8081/'
# VITE_API_BASE='http://192.168.8.242:8081/'
# VITE_API_BASE='http://18.143.76.3:10704/'
# VITE_API_BASE='http://192.168.9.28:8081/'
# VITE_API_BASE='http://192.168.8.94:8081/'
VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload

2
.env.production

@ -2,4 +2,4 @@
VITE_API_BASE='https://hwjb.homilychart.com/admin/'
# VITE_API_BASE='https://hwjb.homilychart.com/gold_htms_dev'
# VITE_API_BASE='http://192.168.8.232:8080/'
VITE_UPLOAD_URL=https://api.homilychart.com/hljw/api/aws/upload

12
src/util/request.js

@ -10,6 +10,18 @@ const service = axios.create({
// 设置默认请求方法为 POST 这行对应的代码搁哪呢? util/http.js自己看
})
// 添加上传方法
export const uploadFile = (file) => {
const formData = new FormData();
formData.append('file', file);
return service.post(import.meta.env.VITE_UPLOAD_URL, formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
});
};
// 请求拦截器
service.interceptors.request.use(config => {
const token = localStorage.getItem('token')

329
src/views/recharge/addCoinRecharge.vue

@ -5,6 +5,7 @@ import { Plus } from '@element-plus/icons-vue'
import axios from 'axios'
import { ElMessageBox } from 'element-plus'
import API from '@/util/http'
import { uploadFile } from '@/util/request';
import moment from 'moment'
import { range, re } from 'mathjs'
import { utils, read } from 'xlsx'
@ -22,20 +23,20 @@ const trimJwCode = () => {
const beforeAvatarUpload = (file) => {
const isJPG = file.type === 'image/jpeg'
const isPNG = file.type === 'image/png'
const isLt2M = file.size / 1024 / 1024 < 2
const isLt2M = file.size / 1024 / 1024 < 1
if (!isJPG && !isPNG) {
ElMessage.error('上传头像图片只能是 JPG 或 PNG 格式!')
}
if (!isLt2M) {
ElMessage.error('上传头像图片大小不能超过 2MB!')
ElMessage.error('上传头像图片大小不能超过 1MB!')
}
return (isJPG || isPNG) && isLt2M
}
//
const imageUrl = ref('')
const voucher = ref('')
const Rate = ref()
// const rateName = ref()
const adminData = ref({})
//
const getAdminData = async function () {
@ -63,7 +64,7 @@ const recharge = ref({
freeGold: '',
money: null,
permanentGold: '',
Rate: null,
rateName: null,
rateId: null,
payModel: '', // payModel
payTime: null, // payTime
@ -117,7 +118,7 @@ const add = async function () {
recharge.value.permanentGold = ''
recharge.value.rateId = null
imageUrl.value = ''
Rate.value = null
recharge.value.rateName = null
user.value = {}
} catch (error) {
console.log('请求失败', error)
@ -129,7 +130,7 @@ const add = async function () {
const addBefore = () => {
Ref.value.validate(async (valid) => {
if (valid) {
if (Rate.value == null || Rate.value == '' || Rate.value == undefined) {
if (recharge.value.rateName == null || recharge.value.rateName == '' || recharge.value.rateName == undefined) {
ElMessage({
type: 'error',
message: '请选择币种'
@ -144,7 +145,7 @@ const addBefore = () => {
return
}
// rateId
const selectedRate = rateName.find(item => item.value === Rate.value)
const selectedRate = rateName.find(item => item.value === recharge.value.rateName)
if (selectedRate) {
recharge.value.rateId = selectedRate.rateId
}
@ -174,48 +175,73 @@ const Ref = ref(null)
const rules = reactive({
jwcode: [{ required: true, message: '请输入精网号', trigger: 'blur' }],
activity: [{ required: true, message: '请选择活动名称', trigger: 'blur' }],
permanentGold: [{ required: true, message: '请输入永久金币数', trigger: 'blur' },
{validator: (rule, value, callback) => {
if (value >= 0) {
callback()
} else {
callback(new Error('输入金额至少为0'))
}}}],
freeGold: [{required: true, message: '请输入免费金币数', trigger: 'blur' },
permanentGold: [
{ required: true, message: '请输入永久金币数', trigger: 'blur' },
{
validator: (rule, value, callback) => {
// ()
//
//
if (/[^0-9.]/.test(value)) {
callback(new Error('不能包含特殊符号或负数'));
return;
}
const numValue = Number(value);
if (isNaN(numValue)) {
callback(new Error('请输入有效的数字'));
} else if (numValue >= 0) {
callback();
} else if (numValue < 0) {
callback(new Error('输入金额不能小于0'));
} else {
callback(new Error('输入金额至少为 0'));
callback();
}
},
trigger: 'blur'
}
],
money: [
{
required: true,
message: '请选择货币名称',
trigger: 'blur'
}
],
'recharge.money': [
freeGold: [
{ required: true, message: '请输入免费金币数', trigger: 'blur' },
{
required: true,
message: '请输入充值金额',
validator: (rule, value, callback) => {
//
if (/[^0-9.]/.test(value)) {
callback(new Error('不能包含特殊符号或负数'));
return;
}
const numValue = Number(value);
if (isNaN(numValue)) {
callback(new Error('请输入有效的数字'));
} else if (numValue < 0) {
callback(new Error('输入金额必须大于0'));
} else {
callback();
}
},
trigger: 'blur'
}
],
rateName: [{
required: true,
message: '请选择货币名称',
trigger: 'blur'
}],
money: [{
required: true,
message: '请输入充值金额',
trigger: 'blur'
}, {
validator: (rule, value, callback) => {
if (!value) {
callback(new Error('请输入充值金额'));
} else if (value < 0) {
callback(new Error('金额不能小于0'));
} else {
callback();
}
},
trigger: 'blur'
}],
payModel: [{ required: true, message: '请选择付款方式', trigger: 'blur' }],
payTime: [{ required: true, message: '请选择交款时间', trigger: 'blur' }]
})
});
//
const user = ref({})
@ -322,12 +348,22 @@ const rateName = [
}
]
//
const customUpload = async (options) => {
try {
const response = await uploadFile(options.file);
handleAvatarSuccess(response.data, { raw: options.file });
} catch (error) {
ElMessage.error('上传失败');
}
};
//
// const uploadUrl = import.meta.env.VITE_UPLOAD_URL;
//
const handleAvatarSuccess = (response, uploadFile) => {
imageUrl.value = URL.createObjectURL(uploadFile.raw)
imageUrl.value = URL.createObjectURL(uploadFile.raw) ;
console.log('图片上传成功', response, uploadFile)
recharge.value.voucher = `http://39.101.133.168:8828/hljw/api/aws/upload`
recharge.value.voucher = import.meta.env.VITE_UPLOAD_URL;
console.log('图片名称', recharge.value.voucher)
}
@ -374,7 +410,7 @@ const deleteRecharge = function () {
rateId: null
}
imageUrl.value = ''
Rate.value = ''
recharge.value.rateName = ''
}
@ -430,16 +466,19 @@ onMounted(async function () {
/>
</el-form-item>
<el-form-item prop="permanentGold" label="永久金币">
<el-input v-model="recharge.permanentGold" style="width: 100px" />
<p style="margin-right: 20px"></p>
<p>免费金币</p>
<el-input v-model="recharge.freeGold" style="width: 100px" />
<el-input v-model="recharge.permanentGold" style="width: 100px" />
<p></p>
</el-form-item>
<el-form-item label="充值金额">
<el-form-item prop="freeGold" label="免费金币">
<el-input v-model="recharge.freeGold" style="width: 100px" />
<p></p>
</el-form-item>
<!-- <el-form-item label="充值金额">
<el-select
prop="money"
v-model="Rate"
prop="moneys"
v-model="rateName"
placeholder="货币名称"
style="width: 95px; margin-right: 5px"
aria-required="true"
@ -451,8 +490,32 @@ onMounted(async function () {
:value="item.value"
/>
</el-select>
<el-input prop="recharge.money" v-model="recharge.money" style="width: 200px" aria-required="true"/>
</el-form-item>
<el-input prop="money" v-model="recharge.money" style="width: 200px" aria-required="true"/>
</el-form-item> -->
<el-form-item label="充值金额" required>
<!-- 货币名称 -->
<el-form-item prop="rateName" style="display: inline-block; margin-left:0;">
<el-select
v-model="recharge.rateName"
placeholder="货币名称"
style="width: 100px"
>
<el-option
v-for="item in rateName"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<!-- 充值金额 -->
<el-form-item prop="money" style="display: inline-block; margin-left:10px;">
<el-input v-model="recharge.money" style="width: 190px"/>
</el-form-item>
</el-form-item>
<el-form-item prop="payModel" label="收款方式">
<el-select
v-model="recharge.payModel"
@ -481,10 +544,9 @@ onMounted(async function () {
style="margin-bottom: 5px"
>
<el-upload
action="http://39.101.133.168:8828/hljw/api/aws/upload"
:http-request="customUpload"
class="avatar-uploader"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
style="width: 100px; height: 115px"
>
@ -516,10 +578,10 @@ onMounted(async function () {
type="textarea"
/>
</el-form-item>
<el-form-item prop="adminId" label="提交人">
<el-form-item prop="adminName" label="提交人">
<el-input
style="width: 300px"
:value="adminData.adminId"
:value="adminData.adminName"
disabled
placeholder="提交人姓名"
/>
@ -531,100 +593,101 @@ onMounted(async function () {
</el-form>
<!-- 客户信息栏 -->
<el-card v-if="user.jwcode"
style="width: 1200px; float: right"
class="customer-info"
width="3000px"
<!-- 客户信息栏 -->
<el-card v-if="user.jwcode" style="width: 800px; float: right" class="customer-info">
<el-form
:model="user"
label-width="auto"
style="max-width: 1000px"
label-position="left"
>
<el-form
:model="user"
label-width="auto"
style="max-width: 1200px"
label-position="left"
>
<el-text size="large" style="margin-left: 20px">客户信息</el-text>
<el-row style="margin-top: 20px">
<el-col :span="10">
<el-form-item label="姓名:">
<p>{{ user.name }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="历史金币总数">
<el-text size="large" style="margin-left: 20px">客户信息</el-text>
<!-- 第一行姓名 + 历史金币 -->
<el-row style="margin-top: 20px">
<el-col :span="9">
<el-form-item label="姓名:">
<p>{{ user.name }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="历史金币总数">
<!-- 检查 user.historySumGold 是否为有效的数字 -->
<p style="color: #2fa1ff; margin-right: 5px" v-if="!isNaN(Number(user.historySumGold))">
{{ Number(user.historySumGold ) /100 }}
</p>
<span
<!-- 如果不是有效的数字显示默认值 -->
<p v-else></p>
</el-form-item>
<el-form-item style="margin-top: -23px"> <!-- 负边距减少间距 -->
<span
style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.historyPermanentGold !== undefined"
>(永久金币:{{ user.historyPermanentGold /100 }};免费金币:{{
(user.historyFreeGold) /100
}};任务金币:{{ user.historyTaskGold /100}})</span>
<!-- 如果不是有效的数字显示默认值 -->
<p v-else></p>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="精网号">
<p>{{ user.jwcode }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="当前金币总数" style="width: 500px">
<span
style="color: #2fa1ff; margin-right: 5px"
v-if="user.nowPermanentGold !== undefined"
>{{
(user.nowSumGold) /100
}}</span
>
<span
style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.nowPermanentGold !== undefined"
>(永久金币:{{ user.nowPermanentGold /100}};免费金币:{{
(user.nowFreeGold) /100
}};任务金币:{{ user.nowTaskGold /100}})</span
>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="首次充值日期">
<p v-if="user.firstRecharge">
{{ moment(user.firstRecharge).format('YYYY-MM-DD HH:mm:ss') }}
</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="充值次数">
<p style="color: #2fa1ff">{{ user.rechargeNum }}</p>
</el-form-item>
</el-col>
<!-- <el-col :span="10">
<el-form-item label="负责客服">
<p>{{ adminData.name }}</p>
</el-form-item>
</el-col> -->
<el-col :span="10">
<el-form-item label="消费次数">
<p style="color: #2fa1ff">{{ user.consumeNum }}</p>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="所属门店">
<p>{{ user.market }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
<!-- <el-form-item label="待审核">
<p style="color: #2fa1ff">
{{ user.A }}
</p>
</el-form-item> -->
</el-col>
</el-row>
</el-form>
</el-card>
</el-form-item>
</el-col>
</el-row>
<!-- 第二行精网号 + 当前金币独立行 -->
<el-row style="margin-top:-23px">
<el-col :span="9">
<el-form-item label="精网号">
<p>{{ user.jwcode }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="当前金币总数" style="width: 500px">
<span
style="color: #2fa1ff; margin-right: 5px"
v-if="user.nowSumGold !== undefined"
>{{ user.nowSumGold }}</span>
</el-form-item>
<!-- 金币详情独立显示 -->
<el-form-item style="margin-top: -23px"> <!-- 负边距减少间距 -->
<span
style="color: #b1b1b1; margin-left: 0px"
v-if="user.nowPermanentGold !== undefined"
>(永久金币:{{ user.nowPermanentGold }};
免费金币:{{ user.nowFreeGold }};
任务金币:{{ user.nowTaskGold }})</span>
</el-form-item>
</el-col>
</el-row>
<!-- 第三行首次充值日期 + 充值次数 -->
<el-row style="margin-top:-23px">
<el-col :span="9">
<el-form-item label="首次充值日期">
<p v-if="user.firstRecharge">
{{ moment(user.firstRecharge).format('YYYY-MM-DD HH:mm:ss') }}
</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="充值次数">
<p style="color: #2fa1ff">{{ user.rechargeNum }}</p>
</el-form-item>
</el-col>
</el-row>
<!-- 第四行消费次数 + 所属门店 -->
<el-row>
<el-col :span="9">
<el-form-item label="消费次数">
<p style="color: #2fa1ff">{{ user.consumeNum }}</p>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="所属门店">
<p>{{ user.market }}</p>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
</div>

16
src/views/recharge/coinRechargeDetail.vue

@ -126,11 +126,11 @@ const getArea = async function () {
}
}
//
//
const isLoadingPlatform = ref(false)
//
//
const platform = ref([])
//
//
const getPlatform = async () => {
isLoadingPlatform.value = true;
try {
@ -143,12 +143,12 @@ const getPlatform = async () => {
if (Array.isArray(result.data)) {
platform.value = result.data.map(item => ({ value: item, label: item }));
} else {
console.error('充值类型格式错误', result)
ElMessage.error('充值类型格式错误,请联系管理员')
console.error('充值方式格式错误', result)
ElMessage.error('充值方式格式错误,请联系管理员')
}
} catch (error) {
console.error('获取充值类型失败:', error);
ElMessage.error('获取充值类型失败,请稍后重试');
console.error('获取充值方式失败:', error);
ElMessage.error('获取充值方式失败,请稍后重试');
} finally {
isLoadingPlatform.value = false
}
@ -388,7 +388,7 @@ const handleSortChange = (column) => {
</el-col>
<el-col :span="6">
<div class="head-card-element">
<el-text class="mx-1" size="large">充值类型</el-text>
<el-text class="mx-1" size="large">充值方式</el-text>
<el-select v-model="rechargeUser.payPlatform" placeholder="请选择充值方式" style="width: 180px" clearable>
<el-option v-for="item in platform" :key="item.value" :label="item.label" :value="item.value" />
</el-select>

162
src/views/refund/addCoinRefund.vue

@ -474,86 +474,88 @@ onMounted(async function () {
</el-form>
<!-- 客户信息栏 -->
<el-card v-if=user.jwcode style="width: 850px; float: right" class="customer-info">
<el-form
:model="user"
label-width="auto"
style="max-width: 1000px"
label-position="left"
>
<el-text size="large" style="margin-left: 20px">客户信息</el-text>
<el-row style="margin-top: 20px">
<el-col :span="10">
<el-form-item label="姓名:">
<p>{{ user.name }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="历史金币总数">
<!-- 检查 user.totalRechargeGold 是否为有效的数字 -->
<p v-if="!isNaN(Number(user.historySumGold))">
{{ Number(user.historySumGold) }}
</p>
<!-- 如果不是有效的数字显示默认值 -->
<p v-else></p>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="精网号">
<p>{{ user.jwcode }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="当前金币总数" style="width: 500px">
<span
style="color: #2fa1ff; margin-right: 5px"
v-if="user.nowSumGold !== undefined"
>{{
(user.nowSumGold)
}}</span
>
<span
style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.nowPermanentGold !== undefined"
>(永久金币:{{ user.nowPermanentGold }};免费金币:{{
(user.nowFreeGold)
}};任务金币:{{ user.nowTaskGold}})</span
>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="首次充值日期">
<p v-if="user.firstRecharge">
{{ moment(user.firstRecharge).format('YYYY-MM-DD HH:mm:ss') }}
</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="充值次数">
<p style="color: #2fa1ff">{{ user.rechargeNum }}</p>
</el-form-item>
</el-col>
<!-- <el-col :span="10">
<el-form-item label="负责客服">
<p>{{ adminData.name }}</p>
</el-form-item>
</el-col> -->
<el-col :span="10">
<el-form-item label="消费次数">
<p style="color: #2fa1ff">{{ user.consumeNum }}</p>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="所属门店">
<p>{{ user.market }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
</el-col>
</el-row>
</el-form>
</el-card>
<el-card v-if="user.jwcode" style="width: 800px; float: right" class="customer-info">
<el-form
:model="user"
label-width="auto"
style="max-width: 1000px"
label-position="left"
>
<el-text size="large" style="margin-left: 20px">客户信息</el-text>
<!-- 第一行姓名 + 历史金币 -->
<el-row style="margin-top: 20px">
<el-col :span="9">
<el-form-item label="姓名:">
<p>{{ user.name }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="历史金币总数">
<p v-if="!isNaN(Number(user.historySumGold))">
{{ Number(user.historySumGold) }}
</p>
</el-form-item>
</el-col>
</el-row>
<!-- 第二行精网号 + 当前金币独立行 -->
<el-row>
<el-col :span="9">
<el-form-item label="精网号">
<p>{{ user.jwcode }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="当前金币总数" style="width: 500px">
<span
style="color: #2fa1ff; margin-right: 5px"
v-if="user.nowSumGold !== undefined"
>{{ user.nowSumGold }}</span>
</el-form-item>
<!-- 金币详情独立显示 -->
<el-form-item style="margin-top: -23px"> <!-- 负边距减少间距 -->
<span
style="color: #b1b1b1; margin-left: 0px"
v-if="user.nowPermanentGold !== undefined"
>(永久金币:{{ user.nowPermanentGold }};
免费金币:{{ user.nowFreeGold }};
任务金币:{{ user.nowTaskGold }})</span>
</el-form-item>
</el-col>
</el-row>
<!-- 第三行首次充值日期 + 充值次数 -->
<el-row style="margin-top:-23px">
<el-col :span="9">
<el-form-item label="首次充值日期">
<p v-if="user.firstRecharge">
{{ moment(user.firstRecharge).format('YYYY-MM-DD HH:mm:ss') }}
</p>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label="充值次数">
<p style="color: #2fa1ff">{{ user.rechargeNum }}</p>
</el-form-item>
</el-col>
</el-row>
<!-- 第四行消费次数 + 所属门店 -->
<el-row>
<el-col :span="9">
<el-form-item label="消费次数">
<p style="color: #2fa1ff">{{ user.consumeNum }}</p>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="所属门店">
<p>{{ user.market }}</p>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
</div>
</template>

77
src/views/usergold/clientCountDetail.vue

@ -7,6 +7,13 @@ import moment from 'moment'
import API from '@/util/http'
import { writeFile, utils } from 'xlsx'
// ref
const totalPermanentGold = ref(0)
const totalFreeGold = ref(0)
const totalTaskGold = ref(0)
const totalGoldTotal = ref(0)
//
const adminData = ref({})
const getAdminData = async function () {
@ -174,14 +181,40 @@ const get = async function (val) {
total.value = result.data.total
//
permanentGold.value = tableData.value.reduce((total, row) => {
return total + (Number(row.permanentGold) || 0);
}, 0);
// permanentGold.value = tableData.value.reduce((total, row) => {
// return total + (Number(row.permanentGold) || 0);
// }, 0);
taskGold.value = tableData.value.reduce((total, row) => {
return total + (Number(row.taskGold) || 0);
}, 0);
// taskGold.value = tableData.value.reduce((total, row) => {
// return total + (Number(row.taskGold) || 0);
// }, 0);
//6+12
const totalResult = await API({
url: '/goldDetail/getTotal',
method: 'post',
data: {
jwcode: goldDetail.value.jwcode || '',
payPlatform: goldDetail.value.payPlatform || '',
type: goldDetail.value.type || '',
market: goldDetail.value.market || '',
startTime: goldDetail.value.startTime || '',
endTime: goldDetail.value.endTime || ''
}
})
if (totalResult.code === 200) {
const data = totalResult.data
totalPermanentGold.value = data.permanentGolds
totalFreeGold.value = data.freeGolds
totalTaskGold.value = data.taskGolds
totalGoldTotal.value = data.sumGolds
} else {
ElMessage.error('获取合计数据失败')
}
} catch (error) {
console.log('请求失败', error)
}
@ -237,12 +270,12 @@ const get7Days = function () {
search()
}
//
const sumGoldTotal = computed(() => {
return tableData.value.reduce((total, row) => {
return total + (Number(row.sumGold) || 0);
}, 0);
});
// //
// const sumGoldTotal = computed(() => {
// return tableData.value.reduce((total, row) => {
// return total + (Number(row.sumGold) || 0);
// }, 0);
// });
// 6+12
@ -253,11 +286,11 @@ const calculateFreeGold = (row) => {
};
//
const totalFreeGold = computed(() => {
return tableData.value.reduce((total, row) => {
return total + calculateFreeGold(row);
}, 0);
});
// const totalFreeGold = computed(() => {
// return tableData.value.reduce((total, row) => {
// return total + calculateFreeGold(row);
// }, 0);
// });
//
const checkNumber = function () {
@ -301,9 +334,7 @@ const handleSortChange = (column) => {
sortField.value = 'free_gold'
} else if (column.prop === 'auditTime') {//creatTime
sortField.value = 'audit_time'
} else if (column.prop === 'gold') {
sortField.value = 'gold'
}
}
sortOrder.value = column.order === 'ascending' ? 'ASC' : 'DESC'
//gethandleSortChange
get()
@ -389,10 +420,10 @@ onMounted(async function () {
<el-col>
<el-card>
<div>
金币总数{{ Math.abs(sumGoldTotal) / 100 }}
永久金币{{ Math.abs(permanentGold) / 100 }}
金币总数{{ Math.abs(totalGoldTotal) / 100 }}
永久金币{{ Math.abs(totalPermanentGold) / 100 }}
免费金币{{ Math.abs(totalFreeGold) / 100 }}
任务金币{{ Math.abs(taskGold) / 100 }}
任务金币{{ Math.abs(totalTaskGold) / 100 }}
</div>
<div style="height: 584px; overflow-y: auto">
<el-table :data="tableData" style="width: 100%" @sort-change="handleSortChange" height="584px">

Loading…
Cancel
Save