From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1
---
src/views/modules/user/user.vue | 575 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 575 insertions(+), 0 deletions(-)
diff --git a/src/views/modules/user/user.vue b/src/views/modules/user/user.vue
new file mode 100644
index 0000000..caf48f8
--- /dev/null
+++ b/src/views/modules/user/user.vue
@@ -0,0 +1,575 @@
+<template>
+ <div class="mod-user">
+ <div>
+ <div class="user_Box_main user_Top_box">
+ <div class="u_Top_tittle">今日数据统计(00:00-24:00)</div>
+ <div class="u_Top_text">
+ <div class="text_Box">
+ <div class="text_mall mall_img">
+ <div class="mall_Top">
+ <span class="mall_Bg"></span>
+ <span class="mall_Text">USDT账户余额</span>
+ <span class="mall_Data">今日</span>
+ </div>
+ <div class="mall_Bottom font_Size20">
+ {{ sumUsdtAmount }}
+ </div>
+ </div>
+ <div class="text_mall_tow mall_imgl">
+ <span class="mall_Bottom_text">总账户金额:</span>
+ <span class="mall_Bottom_num">{{ sumUsdtAmount }}</span>
+ </div>
+ </div>
+ <div class="text_Box">
+ <div class="text_mall mall_img_two font_Size16">
+ <div class="mall_Top">
+ <span class="mall_Bg"></span>
+ <span class="mall_Text">充值金额</span>
+ <span class="mall_Data">今日</span>
+ </div>
+ <div class="mall_Bottom font_Size20">
+ {{ recharge }}
+ </div>
+ </div>
+ <div class="text_mall_tow mall_imgl_two">
+ <span class="mall_Bottom_text">总充值金额:</span>
+ <span class="mall_Bottom_num">{{ sumRecharge }}</span>
+ </div>
+ </div>
+ <div class="text_Box">
+ <div class="text_mall mall_img_three font_Size16">
+ <div class="mall_Top">
+ <span class="mall_Bg"></span>
+ <span class="mall_Text">提现金额</span>
+ <span class="mall_Data">今日</span>
+ </div>
+ <div class="mall_Bottom font_Size20">
+ {{ withdraw }}
+ </div>
+ </div>
+ <div class="text_mall_tow mall_imgl_three">
+ <span class="mall_Bottom_text">提现总额:</span>
+ <span class="mall_Bottom_num">{{ sumWithdraw }}</span>
+ </div>
+ </div>
+ <div class="text_Box">
+ <div class="text_mall mall_img_four font_Size16">
+ <div class="mall_Top">
+ <span class="mall_Bg"></span>
+ <span class="mall_Text">收益</span>
+ <span class="mall_Data">今日</span>
+ </div>
+ <div class="mall_Bottom font_Size20">
+ {{ todayTotleIncome }}
+ </div>
+ </div>
+ <div class="text_mall_tow mall_imgl_four">
+ <span class="mall_Bottom_text">收益总额:</span>
+ <span class="mall_Bottom_num">{{ totleIncome }}</span>
+ </div>
+ </div>
+ <div class="text_Box">
+ <div class="text_mall mall_img_five">
+ <div class="text_Left_mn">
+ <div class="mn_Top">
+ <span class="text_Five_bg"></span>
+ <span class="text_Five_sour">新增用户</span>
+ </div>
+ <div class="mn_Bottom font_Size20">{{ todayUserCount }}</div>
+ </div>
+ <div class="text_Middle_mn">
+ <div class="mn_Top">
+ <span class="text_Five_bg"></span>
+ <span class="text_Five_sour">今日充值人数</span>
+ </div>
+ <div class="mn_Bottom font_Size20">
+ {{ todayRechargeUserCount }}
+ </div>
+ </div>
+ <div class="text_Right_mn">今日</div>
+ </div>
+ <div class="text_mall_tow mall_imgl_five">
+ <span class="mall_Bottom_text">总用户数:</span>
+ <span class="mall_Bottom_num">{{ allUserCount }}</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div
+ class="user_Box_main user_Bottom_box"
+ v-if="isAuth('suer:user:tixingall')"
+ >
+ <div class="u_Top_tittle">
+ {{ "待处理提醒" }}
+ <span class="font_Size12 bg_Red">{{countNum(".user_user")}}</span>
+ </div>
+ <div class="u_Bottom_tittle">
+ <div
+ v-if="isAuth('suer:user:update')"
+ class="text_Box2"
+ @click="onRechange()"
+ >
+ <div class="text_moll">
+ <img
+ style="width: 30px; height: 40px"
+ src="../../../assets/img/Vector_2.png"
+ alt=""
+ />
+ </div>
+ <div class="text_moll">
+ <span class="font_Size14">充值订单</span>
+ <span class="font_Size12 bg_Red">{{ countNum(".recharge_blockchain_order_untreated_cout") }}</span>
+ </div>
+ </div>
+ <div
+ v-if="isAuth('suer:user:tixian')"
+ class="text_Box2"
+ @click="onWithdraw()"
+ >
+ <div class="text_moll">
+ <img
+ style="width: 30px; height: 40px"
+ src="../../../assets/img/Vector_1.png"
+ alt=""
+ />
+ </div>
+ <div class="text_moll">
+ <span class="font_Size14">提现订单</span>
+ <span class="font_Size12 bg_Red">{{ countNum(".withdraw_order_untreated_cout") }}</span>
+ </div>
+ </div>
+ <div
+ class="text_Box2"
+ v-if="isAuth('suer:user:jichu')"
+ @click="onUseBaseButton()"
+ >
+ <div class="text_moll">
+ <img
+ style="width: 42px; height: 40px"
+ src="../../../assets/img/Vector_3.png"
+ alt=""
+ />
+ </div>
+ <div class="text_moll">
+ <span class="font_Size14">用户基础认证</span>
+ <span class="font_Size12 bg_Red">{{ countNum(".kyc_untreated_cout") }}</span>
+ </div>
+ </div>
+ <div
+ class="text_Box2"
+ v-if="isAuth('suer:user:gaoji')"
+ @click="onUseBaseButtonTwo()"
+ >
+ <div class="text_moll">
+ <img
+ style="width: 42px; height: 40px"
+ src="../../../assets/img/Vector_4.png"
+ alt=""
+ />
+ </div>
+ <div class="text_moll">
+ <span class="font_Size14">用户高级认证</span>
+ <span class="font_Size12 bg_Red">{{ countNum(".kyc_high_level_untreated_cout") }}</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- <div class="user_Box_main user_Bottom_box">
+ <div class="u_Top_tittle">订单</div>
+ <echarts>
+ </echarts>
+ </div>
+ <div class="user_Box_main user_Bottom_box">
+ <div class="bottom_Left_rechats user_Box_main">
+ <div class="u_Top_tittle">用户数</div>
+ <echarts_two>
+ </echarts_two>
+ </div>
+ <div class="bottom_Right_rechats user_Box_main">
+ <div class="u_Top_tittle">用户交易统计</div>
+ <echarts_three>
+ </echarts_three>
+ </div>
+ </div>1 -->
+ </div>
+ </div>
+</template>
+
+<script>
+import { tableOption } from "@/crud/user/user";
+import AddOrUpdate from "./user-add-or-update";
+import echarts from "./echats_One.vue";
+import echarts_two from "./echats_Two.vue";
+import echarts_three from "./echats_Three.vue";
+// import useBase from'./useBase.vue'
+// import useBaseTwo from'./useBaseTwo.vue'
+export default {
+ name: "chartShow",
+ data() {
+ return {
+ dataList: [],
+ dataListLoading: false,
+ waitCount: 0, //待处理事件总和
+ dataListSelections: [],
+ rechargeCount: "", //充值
+ withdrawCount: "", //提现
+ realNameAuthCount: "", //用户基础认证
+ highLevelAuthCount: "", //用户高级认证
+ allUserCount: "", //总用户数
+ balanceAmount: "", // 充提差额
+ recharge: "", // 充值金额
+ sumRecharge: "", // 充值总额
+ todayUsdtAmount: "", //今日USDT账户余额
+ sumUsdtAmount: "", // USDT账户余额
+ todayRechargeUserCount: "", // 今日充值人数
+ todayUserCount: "", // 今日新增
+ todayTotleIncome: "", // 今日收益
+ totleIncome: "", //总收益
+ withdraw: "", // 提现金额
+ sumWithdraw: "", //总提现额
+ addOrUpdateVisible: false,
+ tableOption: tableOption,
+ page: {
+ total: 0, // 总页数
+ currentPage: 1, // 当前页数
+ pageSize: 10, // 每页显示多少条
+ },
+ };
+ },
+ components: {
+ AddOrUpdate,
+ echarts,
+ echarts_two,
+ echarts_three,
+ },
+ created() {
+ this.getDataList(), this.getDataListTwo();
+ },
+ methods: {
+ onUseBaseButton() {
+ this.$router.push({ path: "/user-relation-basics" });
+ },
+ onUseBaseButtonTwo() {
+ this.$router.push({ path: "/user-relation-senior" });
+ },
+ onRechange() {
+ this.$router.push({ path: "/order-rechange" });
+ },
+ onWithdraw() {
+ this.$router.push({ path: "/order-withdraw" });
+ },
+ // 待处理数据
+ getDataList() {
+ this.dataListLoading = true;
+ this.$http({
+ url: this.$http.adornUrl("/home/waitCount"),
+ method: "post",
+ data: this.$http.adornData(),
+ }).then(({ data }) => {
+ if (data.code == 0) {
+ (this.rechargeCount = data.data.rechargeCount), //充值
+ (this.withdrawCount = data.data.withdrawCount), //提现
+ (this.realNameAuthCount = data.data.realNameAuthCount), //用户基础认证
+ (this.highLevelAuthCount = data.data.highLevelAuthCount); //用户高级认证
+ this.waitCount =
+ this.rechargeCount +
+ this.withdrawCount +
+ this.realNameAuthCount +
+ this.highLevelAuthCount;
+ } else {
+ this.$message({
+ message: data.msg,
+ type: "error",
+ });
+ }
+ });
+ },
+ // 今日数据统计
+ getDataListTwo() {
+ this.dataListLoading = true;
+ this.$http({
+ url: this.$http.adornUrl("/home/view"),
+ method: "post",
+ data: this.$http.adornData(),
+ }).then(({ data }) => {
+ if (data.code == 0) {
+ console.log(data.data);
+ console.log(data.data.allUserCount);
+ (this.allUserCount = data.data.allUserCount), //总用户数
+ (this.balanceAmount = data.data.balanceAmount), // 充提差额
+ (this.sumRecharge = data.data.sumRecharge), // 总充值金额
+ (this.recharge = data.data.recharge), // 充值金额
+ (this.todayUsdtAmount = data.data.todayUsdtAmount), // 今日USDT账户余额
+ (this.sumUsdtAmount = data.data.sumUsdtAmount), // USDT账户余额
+ (this.todayRechargeUserCount = data.data.todayRechargeUserCount), // 今日充值人数
+ (this.todayUserCount = data.data.todayUserCount), // 今日新增
+ (this.totleIncome = data.data.totleIncome), // 收益
+ (this.todayTotleIncome = data.data.todayTotleIncome), // 今日收益
+ (this.withdraw = data.data.withdraw); // 今日提现金额
+ this.sumWithdraw = data.data.sumWithdraw; // 总提现金额
+ } else {
+ this.$message({
+ message: data.msg,
+ type: "error",
+ });
+ }
+ });
+ },
+ // 新增 / 修改
+ addOrUpdateHandle(id) {
+ this.addOrUpdateVisible = true;
+ this.$nextTick(() => {
+ this.$refs.addOrUpdate.init(id);
+ });
+ },
+ // 删除
+ deleteHandle(id) {
+ var ids = id
+ ? [id]
+ : this.dataListSelections.map((item) => {
+ return item.userId;
+ });
+ this.$confirm(`确定进行[${id ? "删除" : "批量删除"}]操作?`, "提示", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(() => {
+ this.$http({
+ url: this.$http.adornUrl("/admin/user"),
+ method: "delete",
+ data: this.$http.adornData(ids, false),
+ }).then(({ data }) => {
+ this.$message({
+ message: "操作成功",
+ type: "success",
+ duration: 1500,
+ onClose: () => {
+ this.getDataList(this.page);
+ },
+ });
+ });
+ })
+ .catch(() => {});
+ },
+ // 条件查询
+ searchChange(params, done) {
+ this.getDataList(this.page, params, done);
+ },
+ // 多选变化
+ selectionChange(val) {
+ this.dataListSelections = val;
+ },
+ countNum(name){
+ let num = this.main.tips[name]
+ return num;
+ }
+ },
+};
+</script>
+<style lang="scss" scoped>
+.mod-user {
+ .user_Box_main {
+ width: 100%;
+ box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
+ margin: 0 auto;
+ border-radius: 10px;
+ margin-bottom: 20px;
+ margin-top: 30px;
+ }
+ .u_Top_tittle {
+ width: 100%;
+ height: 60px;
+ font-size: 16px;
+ line-height: 60px;
+ font-weight: 500;
+ padding-left: 2%;
+ border-bottom: 1px solid #e6e6e6;
+ }
+ .u_Top_text {
+ width: 100%;
+ overflow: hidden;
+ padding: 45px 0;
+ }
+ .u_Bottom_tittle {
+ width: 60%;
+ min-width: 800px;
+ display: flex;
+ margin-top: 56px;
+ }
+ .text_Box {
+ float: left;
+ width: 288px;
+ margin: 0 0px 18px 0;
+ padding: 0 10px;
+ }
+ .text_Box2 {
+ float: left;
+ width: 160px;
+ margin: 0 50px 18px 0;
+ padding: 0 10px;
+ }
+ .text_mall {
+ display: block;
+ height: 110px;
+ border-radius: 5px 5px 0px 0px;
+ padding: 0 10px;
+ color: #fff;
+ }
+ .text_mall_tow {
+ display: block;
+ height: 50px;
+ border-radius: 0px 0px 5px 5px;
+ line-height: 50px;
+ padding: 0 10px;
+ }
+ .mall_Bottom_text {
+ float: left;
+ }
+ .mall_Bottom_num {
+ float: right;
+ }
+ .mall_img {
+ background: #ed8a9a;
+ }
+ .mall_img_two {
+ background: #87c1fa;
+ }
+ .mall_img_three {
+ background: #7890f7;
+ }
+ .mall_img_four {
+ background: #80d4ce;
+ }
+ .mall_img_five {
+ background: #eba994;
+ }
+ .mall_imgl {
+ background: #ffe6ea;
+ color: #47121a;
+ }
+ .mall_imgl_two {
+ background: #e1f0ff;
+ color: #0a1e32;
+ }
+ .mall_imgl_three {
+ background: #e2e8ff;
+ color: #10183d;
+ }
+ .mall_imgl_four {
+ background: #d8fffc;
+ color: #0b322f;
+ }
+ .mall_imgl_five {
+ background: #ffeae3;
+ color: #2f130b;
+ }
+ .mall_Top {
+ height: 40px;
+ color: #fff;
+ font-size: 14px;
+ }
+ .mall_Bg {
+ float: left;
+ background: url(../../../assets/img/us.png) center no-repeat;
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ background-size: 100%;
+ margin-top: 15px;
+ }
+ .mall_Text {
+ float: left;
+ margin: 17px 0 0 6px;
+ }
+ .mn_Top {
+ height: 40px;
+ }
+ .mn_Bottom {
+ margin-top: 21px;
+ }
+ .mall_Data {
+ float: right;
+ margin-top: 17px;
+ }
+ .mall_Bottom {
+ margin-top: 20px;
+ }
+ .mn_Bottom {
+ max-width: 100px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ }
+ .text_Left_mn {
+ float: left;
+ height: 110px;
+ max-width: 100px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ }
+ .text_Middle_mn {
+ float: left;
+ height: 110px;
+ margin-left: 10px;
+ }
+ .text_Right_mn {
+ float: right;
+ height: 110px;
+ padding-top: 17px;
+ }
+ .text_Five_bg {
+ float: left;
+ background: url(../../../assets/img/imgswt.png) center no-repeat;
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ background-size: 100%;
+ margin-top: 15px;
+ }
+ .text_Five_sour {
+ float: left;
+ margin: 17px 0 0 6px;
+ }
+ .text_moll {
+ display: block;
+ margin-bottom: 20px;
+ text-align: center;
+ height: 40px;
+ }
+ .font_Size16 {
+ font-size: 16px;
+ }
+ .font_Size20 {
+ font-size: 20px;
+ }
+ .green {
+ color: #29be89;
+ }
+ .red {
+ color: red;
+ }
+ .font_Size14 {
+ font-size: 14px;
+ }
+ .font_Size12 {
+ font-size: 12px;
+ }
+ .bg_Red {
+ color: #f2f7ff;
+ background: #e05561;
+ border-radius: 79px;
+ padding: 5px;
+ margin-left: 5px;
+ }
+ .bottom_Left_rechats {
+ width: 68%;
+ height: 490px;
+ float: left;
+ }
+ .bottom_Right_rechats {
+ width: 30%;
+ height: 490px;
+ float: right;
+ }
+}
+</style>
--
Gitblit v1.9.3