Browse Source

feat: 新增消耗(完成) 消耗明细(总计金币数[后端不能筛选]) 汇率页面(完成)

lihui/feature-20250623144029-金币前端lihui
lihui 4 days ago
parent
commit
bae599c1e2
  1. 143
      src/views/consume/addCoinConsume.vue
  2. 90
      src/views/consume/coinConsumeDetail.vue

143
src/views/consume/addCoinConsume.vue

@ -5,8 +5,9 @@ import moment from "moment";
import request from "@/util/http";
/*====================工具方法==============================*/
/*
====================工具方法==============================
*/
//
const trimJwCode = () => {
if (addConsume.value.jwcode) {
@ -23,35 +24,11 @@ const trimJwCode = () => {
}
}
// =====================================================
/*====================方法=================================*/
/*====================监听=================================*/
/*====================挂载=================================*/
//
/*
====================数据=================================
*/
//
const adminData = ref({});
const getAdminData = async function () {
try {//await
const result = await request({
url: "/admin/userinfo",
data: {},
});
adminData.value = result;
addConsume.value.adminId = adminData.value.adminId;
addConsume.value.name = adminData.value.name;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
//
const user = ref({
jwcode: null,
@ -71,12 +48,11 @@ const user = ref({
nowFreeGold: null,
nowSumGold: null
})
//
const addConsume = ref({
// jwcode
jwcode: null, //
goodsName: "",// // todo 3
goodsName: "",//
sumGold: null, //
freeGold: null, //
permanentGold: null, //
@ -85,6 +61,40 @@ const addConsume = ref({
adminId: null,// id
});
//
const Ref = ref(null);
//
const rules = reactive({
jwcode: [{required: true, message: "请输入精网号", trigger: "blur"}],
goodsName: [{required: true, message: "请选择消费商品", trigger: "change"}], // change
sumGold: [
{required: true, message: "消费金币总数不能为空", trigger: "blur"},
],
});
//
const goods = ref([]);
/*
====================方法=================================
*/
const getAdminData = async function () {
try {//await
const result = await request({
url: "/admin/userinfo",
data: {},
});
adminData.value = result;
addConsume.value.adminId = adminData.value.adminId;
addConsume.value.name = adminData.value.name;
console.log("请求成功", result);
console.log("用户信息", adminData.value);
} catch (error) {
console.log("请求失败", error);
}
};
//
function calculateCoins(sumGold) {
@ -119,24 +129,6 @@ function calculateCoins(sumGold) {
return {free: 0, permanent: 0, task: 0};
}
//
watch(
() => addConsume.value.sumGold,
(newValue) => {
if (newValue > 0) {
const {free, permanent, task} = calculateCoins(newValue);
addConsume.value.freeGold = free;
addConsume.value.permanentGold = permanent;
addConsume.value.taskGold = task;
} else {
addConsume.value.freeGold = null;
addConsume.value.permanentGold = null;
addConsume.value.taskGold = null;
}
}
);
//
function validateInput() {
const sumGold = addConsume.value.sumGold;
@ -170,8 +162,6 @@ function validateInput() {
return true;
}
//
const add = async function () {
try {
@ -201,7 +191,6 @@ const add = async function () {
ElMessage.error("添加失败,请检查网络连接或联系管理员");
}
};
//
function handleResponse(result) {
console.log("响应结果", result)
@ -212,7 +201,6 @@ function handleResponse(result) {
ElMessage.error(result.msg || "添加失败,未知错误");
}
}
//
function resetForm() {
//
@ -251,7 +239,7 @@ function resetForm() {
// user.value.jwcode = null;
// user.value = null;
}
//
const addBefore = () => {
Ref.value.validate(async (valid) => {
if (valid) {
@ -274,22 +262,6 @@ const addBefore = () => {
}
});
};
//
//
const Ref = ref(null);
const rules = reactive({
jwcode: [{required: true, message: "请输入精网号", trigger: "blur"}],
goodsName: [{required: true, message: "请选择消费商品", trigger: "change"}], // change
sumGold: [
{required: true, message: "消费金币总数不能为空", trigger: "blur"},
],
});
//
const getUser = async function (jwcode) {
trimJwCode();
@ -320,10 +292,7 @@ const getUser = async function (jwcode) {
//
}
};
//
const goods = ref([]);
// ()
const getGoods = async function () {
try {
// POST
@ -348,7 +317,30 @@ const getGoods = async function () {
}
};
/*
====================监听=================================
*/
//
watch(
() => addConsume.value.sumGold,
(newValue) => {
if (newValue > 0) {
const {free, permanent, task} = calculateCoins(newValue);
addConsume.value.freeGold = free;
addConsume.value.permanentGold = permanent;
addConsume.value.taskGold = task;
} else {
addConsume.value.freeGold = null;
addConsume.value.permanentGold = null;
addConsume.value.taskGold = null;
}
}
);
/*
====================挂载=================================
*/
//
onMounted(async function () {
await getAdminData();
@ -356,7 +348,6 @@ onMounted(async function () {
});
</script>
<template>

90
src/views/consume/coinConsumeDetail.vue

@ -1,8 +1,10 @@
<script setup>
import {onMounted, ref} from 'vue'
import {computed, onMounted, ref} from 'vue'
import {dayjs, ElMessage} from 'element-plus'
import request from '@/util/http'
//
//
const formatTime = (val) => val ? dayjs(val).format('YYYY-MM-DD HH:mm:ss') : ''
@ -92,7 +94,13 @@ const permanentGold = ref(0)
const freeGold = ref(0)
const taskGold = ref(0)
const totalGold = ref(0)
//
const permanentGolds = ref(0)
const freeGolds = ref(0)
const taskGolds = ref(0)
//
const sumGold = computed(() => permanentGolds.value + freeGolds.value + taskGolds.value)
//
// =========================================================================================================================================================
@ -142,47 +150,58 @@ const ConsumeSelectBy = async function (val) {
delete detailWithoutSort.sortField
delete detailWithoutSort.sortOrder
//
const result2 = await request({
const resultTotalGold = await request({
// url: 'http://192.168.8.247:8081/consume/statsGold',
url: 'http://192.168.8.247:8081/consume/statsGold',
data: {
...detailWithoutSort
}
// data: {
// pageNum: getObj.value.pageNum,
// pageSize: getObj.value.pageSize,
// consumeUser: consumeUser.value
// }
})
//
console.log('请求成功', result)
console.log('请求成功2', result2)
console.log("总计",resultTotalGold)
if (resultTotalGold.code === 200 && resultTotalGold.data) {
const data = resultTotalGold.data
console.log('获取到的金币数据:', data)
permanentGolds.value = Number(data.permanentGolds) || 0
freeGolds.value = Number(data.freeGolds) || 0
taskGolds.value = Number(data.taskGolds) || 0
}
//
tableData.value = result.data.list
tableDataTotal.value = result2.data
if (result2.data == null) {
console.log('请求成功2', result2)
tableDataTotal.value = resultTotalGold.data
if (resultTotalGold.data == null) {
console.log('请求成功2', resultTotalGold)
// 西
tableDataTotal.value = {
sumRcion: 0,
sumFcion: 0,
sumTcion: 0,
sumcion: 0
}
tableDataTotal.value = resultTotalGold.data
}
console.log('tableDataT', tableDataTotal)
//
permanentGold.value = parseFloat(
(tableDataTotal.value.sumRcion / 100).toFixed(2)
)
freeGold.value = parseFloat(
(tableDataTotal.value.sumFcion / 100).toFixed(2)
)
taskGold.value = parseFloat(
(tableDataTotal.value.sumTcion / 100).toFixed(2)
)
totalGold.value = parseFloat(
(tableDataTotal.value.sumcion / 100).toFixed(2)
)
const sumGoldList = tableData.value.map(item => item.sumGold);
console.log("sumGold",sumGoldList); // sumGold
console.log('@@@@@@@@@@tableDataT', tableDataTotal.value.list)
// totalGold.value = tableData.value.sum
// //
// permanentGold.value = parseFloat(
// (tableDataTotal.value.list.sumGold / 100).toFixed(2)
// )
// freeGold.value = parseFloat(
// (tableDataTotal.value.sumFcion / 100).toFixed(2)
// )
// taskGold.value = parseFloat(
// (tableDataTotal.value.sumTcion / 100).toFixed(2)
// )
// totalGold.value = parseFloat(
// (tableDataTotal.value.sumcion / 100).toFixed(2)
// )
console.log('tableData', tableData.value)
//
@ -299,7 +318,6 @@ const getMarket = async function () {
try {
//
const result = await request({
// todo
// url: '/general/market',
url: 'http://192.168.8.247:8081/general/market', // todo
data: {}
@ -500,9 +518,9 @@ onMounted(async function () {
<el-col>
<el-card>
<div>
消耗金额{{ Math.abs(totalGold) }}新币永久金币{{ Math.abs(permanentGold) }}免费金币{{
Math.abs(freeGold)
}}任务金币{{ Math.abs(taskGold) }}
消耗金额{{ Math.abs(sumGold) }}新币永久金币{{ Math.abs(permanentGolds) }}免费金币{{
Math.abs(freeGolds)
}}任务金币{{ Math.abs(taskGolds) }}
</div>
<!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 576px; overflow-y: auto">

Loading…
Cancel
Save