Browse Source

23333删除

Hongxilin
donghaolin 5 months ago
parent
commit
2ec35bf4d1
  1. 2
      vue/gold-system/src/router/index.js
  2. 46
      vue/gold-system/src/views/index.vue
  3. 6
      vue/gold-system/src/views/recharge/addRecharge.vue
  4. 76
      vue/gold-system/src/views/usergold/index.vue
  5. 344
      vue/gold-system/src/views/usergoldInfo/index.vue

2
vue/gold-system/src/router/index.js

@ -36,6 +36,8 @@ const router=createRouter({
{path:'/allRefund',component:()=>import("../views/refund/allRefund.vue")},
// 客户金币明细
{path:'/usergold',component:()=>import("../views/usergold/index.vue")},
// 客户金币余额
{path:'/usergoldInfo',component:()=>import("../views/usergoldInfo/index.vue")},
]
},

46
vue/gold-system/src/views/index.vue

@ -33,13 +33,13 @@ const getAdminData = async function () {
//
const openMessage = function () {
messageVisible.value = true;
}
};
const closeMessage = function () {
messageVisible.value = false;
};
const message = function () {
openMessage();
}
};
function logout() {
localStorage.removeItem("token");
@ -47,7 +47,6 @@ function logout() {
ElMessage.success("退出成功");
}
//
onMounted(async function () {
//
@ -60,11 +59,23 @@ onMounted(async function () {
<el-container>
<el-aside style="width: 250px">
<div class="logo">
<img src="../assets/金币管理系统logo.png" alt="logo" style="width: 30px; height: 30px" />
<img
src="../assets/金币管理系统logo.png"
alt="logo"
style="width: 30px; height: 30px"
/>
<div style="font-size: 16px; font-weight: bold">海外金币管理系统</div>
</div>
<el-menu router="true" background-color="#08193d" active-text-color="#ffd04b" text-color="white"
class="el-menu-vertical-demo" default-active="2" @open="handleOpen" @close="handleClose">
<el-menu
router="true"
background-color="#08193d"
active-text-color="#ffd04b"
text-color="white"
class="el-menu-vertical-demo"
default-active="2"
@open="handleOpen"
@close="handleClose"
>
<el-menu-item index="/workspace">
<el-icon>
<Folder />
@ -134,15 +145,31 @@ onMounted(async function () {
</el-icon>
客户金币明细
</el-menu-item>
<el-menu-item index="/usergoldInfo">
<el-icon>
<Folder />
</el-icon>
客户金币余额
</el-menu-item>
</el-menu>
</el-aside>
<el-container>
<el-header>
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" :ellipsis="false"
@select="handleSelect">
<el-menu
:default-active="activeIndex"
class="el-menu-demo"
mode="horizontal"
:ellipsis="false"
@select="handleSelect"
>
<el-sub-menu index="1" class="admin">
<template #title>
<el-image :src="imgrule1" alt="错误" style="width: 50px; height: 50px" />
<el-image
:src="imgrule1"
alt="错误"
style="width: 50px; height: 50px"
/>
<span style="margin-left: 10px">{{ adminData.name }}</span>
</template>
<el-menu-item @click="message()">查看个人信息</el-menu-item>
@ -184,7 +211,6 @@ onMounted(async function () {
</div>
</template>
</el-dialog>
</template>
<style scoped>

6
vue/gold-system/src/views/recharge/addRecharge.vue

@ -712,11 +712,7 @@ const batchAdd = function () {
:value="item.exchangeRate"
/>
</el-select>
<el-input
v.233333
-model="addRecharge.rechargeGold"
style="width: 200px"
/>
<el-input v-model="addRecharge.rechargeGold" style="width: 200px" />
</el-form-item>
<el-form-item prop="payWay" label="收款方式">
<el-select

76
vue/gold-system/src/views/usergold/index.vue

@ -219,18 +219,39 @@ onMounted(async function () {
<div class="head-card">
<div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text>
<el-input v-model="detailY.jwcode" style="width: 240px" placeholder="请输入精网号" clearable />
<el-input
v-model="detailY.jwcode"
style="width: 240px"
placeholder="请输入精网号"
clearable
/>
</div>
<div class="head-card-element">
<el-text class="mx-1" size="large">更新类型</el-text>
<el-select v-model="detailY.updateType" placeholder="请选择更新类型" size="large" style="width: 240px" clearable>
<el-option v-for="item in updateType" :key="item.value" :label="item.label" :value="item.value" />
<el-select
v-model="detailY.updateType"
placeholder="请选择更新类型"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in updateType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
<div class="head-card-element">
<el-text class="mx-1" size="large">更新时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" />
<el-date-picker
v-model="getTime"
type="datetimerange"
range-separator="至"
start-placeholder="起始时间"
end-placeholder="结束时间"
/>
</div>
<div class="head-card-btn">
<el-button @click="reset()">重置</el-button>
@ -253,6 +274,7 @@ onMounted(async function () {
<el-table-column prop="uname" label="姓名" width="130" />
<el-table-column prop="jwcode" label="精网号" width="170" />
<el-table-column prop="area" label="所属地区" width="170" />
<el-table-column prop="platform" label="平台信息" width="170" />
<el-table-column prop="gold" label="更新数量" width="160">
<template #default="scope">
<span>{{
@ -294,7 +316,12 @@ onMounted(async function () {
</template>
</el-table-column>
<el-table-column prop="name" label="提交人" width="150" />
<el-table-column prop="createTime" label="更新时间" width="210" show-overflow-tooltip>
<el-table-column
prop="createTime"
label="更新时间"
width="210"
show-overflow-tooltip
>
<template #default="scope">
<span>{{
moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss")
@ -307,17 +334,42 @@ onMounted(async function () {
<!-- 分页 -->
<!-- 分页 -->
<div class="pagination" style="margin-top: 20px">
<el-pagination background :page-size="getObj.pageSize" layout="slot" :total="total">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<div>{{ total }},每页</div>
<el-select v-model="getObj.pageSize" class="page-size" @change="get()" style="width: 80px">
<el-option v-for="item in [5, 10, 20, 50, 100]" :key="item" :label="item" :value="item"></el-option>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="get()"
style="width: 80px"
>
<el-option
v-for="item in [5, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
<div></div>
</el-pagination>
<el-pagination background layout="prev, pager, next,slot" :page-size="getObj.pageSize" :total="total"
:current-page="getObj.pageNum" @current-change="get">
<el-pagination
background
layout="prev, pager, next,slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="get"
>
<div>跳至</div>
<el-input v-model="getObj.pageNum" style="width: 40px" @change="checkNumber" />
<el-input
v-model="getObj.pageNum"
style="width: 40px"
@change="checkNumber"
/>
<div></div>
</el-pagination>
</div>

344
vue/gold-system/src/views/usergoldInfo/index.vue

@ -0,0 +1,344 @@
<script setup>
import { ref, onMounted, reactive, computed } from "vue";
import ElementPlus from "element-plus";
import { ElMessage, ElMessageBox } from "element-plus";
import axios from "axios";
import moment from "moment";
import { ta } from "element-plus/es/locales.mjs";
import API from "../../api/index.js";
//
const tableData = ref([]);
//
const tableAllData = ref([]);
//
const rechargeCoin = ref(0);
const freeCoin = ref(0);
const taskCoin = ref(0);
// ===========================================
//
const total = ref(100);
//
const getTime = ref([]);
// detailY
const detailY = ref({});
//
const getAllObj = ref({});
//
const getObj = ref({
pageNum: 1,
pageSize: 50,
});
//
const updateType = [
{
value: "0",
label: "充值",
},
{
value: "1",
label: "消费",
},
{
value: "2",
label: "退款",
},
];
// //
// const tableHeight = computed(function () {
// return (getObj.value.pageSize + 2) * 38 + "px";
// });
//
// ===========================================================================
//
const get = async function (val) {
try {
//
if (typeof val === "number") {
getObj.value.pageNum = val;
}
//
if (getTime.value != null) {
if (getTime.value.startDate != "" && getTime.value.endDate != "") {
detailY.value.startDate = getTime.value[0];
detailY.value.endDate = getTime.value[1];
}
} else {
detailY.value.startDate = "";
detailY.value.endDate = "";
}
console.log("搜索参数", getObj.value);
// POST
const result = await API.post("http://192.168.8.93:10010/detailY", {
...getObj.value,
detailY: { ...detailY.value },
});
const result2 = await API.post("http://192.168.8.93:10010/detailY", {
...getAllObj.value,
detailY: { ...detailY.value },
});
//
console.log("请求成功", result);
console.log("请求成功2", result2);
//
tableData.value = result.data.list;
console.log("tableData", tableData.value);
tableAllData.value = result2.data;
console.log("tableAllData", tableAllData.value);
//
total.value = result.data.total;
console.log("total", total.value);
//
rechargeCoin.value = tableAllData.value.sumR;
freeCoin.value = tableAllData.value.sumF;
taskCoin.value = tableAllData.value.sumT;
// for (let i = 0; i < tableAllData.value.length; i++) {
// rechargeCoin.value += tableAllData.value[i].rechargeCoin;
// freeCoin.value += tableAllData.value[i].freeCoin;
// taskCoin.value += tableAllData.value[i].taskCoin;
// }
console.log(
"各金币总数",
rechargeCoin.value,
freeCoin.value,
taskCoin.value
);
} catch (error) {
console.log("请求失败", error);
//
}
};
//
const search = function () {
getObj.value.pageNum = 1;
get();
};
//
const reset = function () {
detailY.value.jwcode = "";
detailY.value.updateType = "";
detailY.value.startDate = "";
detailY.value.endDate = "";
getTime.value = {};
};
//
const checkNumber = function () {
if (typeof parseInt(getObj.value.pageNum) === "number") {
console.log(
"总共有多少页" + Math.ceil(total.value / getObj.value.pageSize)
);
if (
getObj.value.pageNum > 0 &&
getObj.value.pageNum <= Math.ceil(total.value / getObj.value.pageSize)
) {
getObj.value.pageNum = parseInt(getObj.value.pageNum);
console.log("输入的数字合法");
get();
} else {
//
ElMessage({
type: "error",
message: "请检查输入内容",
});
}
} else {
//
ElMessage({
type: "error",
message: "请检查输入内容",
});
}
};
//
onMounted(async function () {
await get();
});
</script>
<template>
<el-row>
<el-col>
<el-card style="margin-bottom: 20px">
<div class="head-card">
<div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text>
<el-input
v-model="detailY.jwcode"
style="width: 240px"
placeholder="请输入精网号"
clearable
/>
</div>
<div class="head-card-element">
<el-text class="mx-1" size="large">更新类型</el-text>
<el-select
v-model="detailY.updateType"
placeholder="请选择更新类型"
size="large"
style="width: 240px"
clearable
>
<el-option
v-for="item in updateType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
<div class="head-card-element">
<el-text class="mx-1" size="large">更新时间</el-text>
<el-date-picker
v-model="getTime"
type="datetimerange"
range-separator="至"
start-placeholder="起始时间"
end-placeholder="结束时间"
/>
</div>
<div class="head-card-btn">
<el-button @click="reset()">重置</el-button>
<el-button type="primary" @click="search()">查询</el-button>
</div>
</div>
</el-card>
</el-col>
</el-row>
<el-row>
<el-col>
<el-card>
<div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column prop="uname" label="姓名" width="130" />
<el-table-column prop="jwcode" label="精网号" width="170" />
<el-table-column prop="area" label="所属地区" width="170" />
<el-table-column prop="platform" label="平台信息" width="170" />
<el-table-column prop="gold" label="更新数量" width="160">
<template #default="scope">
<span>{{
Math.abs(
scope.row.rechargeCoin +
scope.row.freeCoin +
scope.row.taskCoin
)
}}</span>
</template>
</el-table-column>
<el-table-column prop="updateType" label="更新类型" width="150">
<!-- 模板内容 -->
<template #default="scope">
<span v-if="scope.row.updateType == 1">
<span>消费</span>
</span>
<span v-if="scope.row.updateType == 0">
<span>充值</span>
</span>
<span v-if="scope.row.updateType == 2">
<span>退款</span>
</span>
</template>
</el-table-column>
<el-table-column prop="freeCoin" label="免费金币" width="130">
<template #default="scope">
<span>{{ Math.abs(scope.row.freeCoin) }}</span>
</template>
</el-table-column>
<el-table-column prop="rechargeCoin" label="充值金币" width="150">
<template #default="scope">
<span>{{ Math.abs(scope.row.rechargeCoin) }}</span>
</template>
</el-table-column>
<el-table-column prop="taskCoin" label="任务金币" width="130">
<template #default="scope">
<span>{{ Math.abs(scope.row.taskCoin) }}</span>
</template>
</el-table-column>
<el-table-column prop="name" label="提交人" width="150" />
<el-table-column
prop="createTime"
label="更新时间"
width="210"
show-overflow-tooltip
>
<template #default="scope">
<span>{{
moment(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss")
}}</span>
</template>
</el-table-column>
</el-table>
</div>
<!-- 分页 -->
<!-- 分页 -->
<div class="pagination" style="margin-top: 20px">
<el-pagination
background
:page-size="getObj.pageSize"
layout="slot"
:total="total"
>
<div>{{ total }},每页</div>
<el-select
v-model="getObj.pageSize"
class="page-size"
@change="get()"
style="width: 80px"
>
<el-option
v-for="item in [5, 10, 20, 50, 100]"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
<div></div>
</el-pagination>
<el-pagination
background
layout="prev, pager, next,slot"
:page-size="getObj.pageSize"
:total="total"
:current-page="getObj.pageNum"
@current-change="get"
>
<div>跳至</div>
<el-input
v-model="getObj.pageNum"
style="width: 40px"
@change="checkNumber"
/>
<div></div>
</el-pagination>
</div>
</el-card>
</el-col>
</el-row>
</template>
<style scoped>
.pagination {
display: flex;
}
.status {
display: flex;
}
.head-card {
display: flex;
}
.head-card-element {
margin-right: 20px;
}
.head-card-btn {
margin-left: auto;
}
</style>
Loading…
Cancel
Save