donghaolin 4 months ago
parent
commit
a319396262
  1. BIN
      vue/gold-system/dist.7z
  2. 38
      vue/gold-system/src/router/index.js
  3. 12
      vue/gold-system/src/views/audit/rechargeAudit.vue
  4. 10
      vue/gold-system/src/views/audit/refundAudit.vue
  5. 12
      vue/gold-system/src/views/consume/addConsume.vue
  6. 4
      vue/gold-system/src/views/consume/allConsume.vue
  7. 30
      vue/gold-system/src/views/index.vue
  8. 4
      vue/gold-system/src/views/login.vue
  9. 21
      vue/gold-system/src/views/managerecharge/activity.vue
  10. 14
      vue/gold-system/src/views/managerecharge/rate.vue
  11. 124
      vue/gold-system/src/views/recharge/addRecharge.vue
  12. 10
      vue/gold-system/src/views/recharge/adminRecharge.vue
  13. 6
      vue/gold-system/src/views/recharge/allRecharge.vue
  14. 12
      vue/gold-system/src/views/refund/addRefund.vue
  15. 8
      vue/gold-system/src/views/refund/allRefund.vue
  16. 10
      vue/gold-system/src/views/usergold/index.vue
  17. 4
      vue/gold-system/src/views/usergoldInfo/index.vue
  18. 256
      vue/gold-system/src/views/workspace/index.vue

BIN
vue/gold-system/dist.7z

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

@ -3,43 +3,41 @@ import { createRouter,createWebHashHistory } from 'vue-router';
const router=createRouter({
history:createWebHashHistory(),
routes:[
{path:'/login', name:"login", component:()=>import("../views/login.vue")},
{path:'/',redirect:"/login"},
{path:'/test',component:()=>import("../views/z.vue")},
{path:'/jtzy/Product/other/test/hwjb/login', name:"login", component:()=>import("../views/login.vue")},
{path:'/',redirect:"/jtzy/Product/other/test/hwjb/login"},
{path:'/jtzy/Product/other/test/hwjb/test',component:()=>import("../views/z.vue")},
{
meta:{requireAuth:true},
path:'/index',component:()=>import("../views/index.vue"),
path:'/jtzy/Product/other/test/hwjb/index',component:()=>import("../views/index.vue"),
children:[
// 工作台
{path:'/workspace',component:()=>import("../views/workspace/index.vue")},
{path:'/jtzy/Product/other/test/hwjb/workspace',component:()=>import("../views/workspace/index.vue")},
// 充值审核
{path:'/rechargeAudit',component:()=>import("../views/audit/rechargeAudit.vue")},
{path:'/jtzy/Product/other/test/hwjb/rechargeAudit',component:()=>import("../views/audit/rechargeAudit.vue")},
// 退款审核
{path:'/refundAudit',component:()=>import("../views/audit/refundAudit.vue")},
{path:'/jtzy/Product/other/test/hwjb/refundAudit',component:()=>import("../views/audit/refundAudit.vue")},
// 新增消费
{path:'/addConsume',component:()=>import("../views/consume/addConsume.vue")},
{path:'/jtzy/Product/other/test/hwjb/addConsume',component:()=>import("../views/consume/addConsume.vue")},
// 所有消费明细
{path:'/allConsume',component:()=>import("../views/consume/allConsume.vue")},
{path:'/jtzy/Product/other/test/hwjb/allConsume',component:()=>import("../views/consume/allConsume.vue")},
// 活动管理
{path:'/activity',component:()=>import("../views/managerecharge/activity.vue")},
{path:'/jtzy/Product/other/test/hwjb/activity',component:()=>import("../views/managerecharge/activity.vue")},
// 汇率管理
{path:'/rate',component:()=>import("../views/managerecharge/rate.vue")},
{path:'/jtzy/Product/other/test/hwjb/rate',component:()=>import("../views/managerecharge/rate.vue")},
// 新增充值
{path:'/addRecharge',component:()=>import("../views/recharge/addRecharge.vue")},
{path:'/jtzy/Product/other/test/hwjb/addRecharge',component:()=>import("../views/recharge/addRecharge.vue")},
// 客户充值明细
{path:'/adminRecharge',component:()=>import("../views/recharge/adminRecharge.vue")},
{path:'/jtzy/Product/other/test/hwjb/adminRecharge',component:()=>import("../views/recharge/adminRecharge.vue")},
// 所有充值明细
{path:'/allRecharge',component:()=>import("../views/recharge/allRecharge.vue")},
{path:'/jtzy/Product/other/test/hwjb/allRecharge',component:()=>import("../views/recharge/allRecharge.vue")},
// 新增退款
{path:'/addRefund',component:()=>import("../views/refund/addRefund.vue")},
{path:'/jtzy/Product/other/test/hwjb/addRefund',component:()=>import("../views/refund/addRefund.vue")},
// 退款明细
{path:'/allRefund',component:()=>import("../views/refund/allRefund.vue")},
{path:'/jtzy/Product/other/test/hwjb/allRefund',component:()=>import("../views/refund/allRefund.vue")},
// 客户金币明细
{path:'/usergold',component:()=>import("../views/usergold/index.vue")},
{path:'/jtzy/Product/other/test/hwjb/usergold',component:()=>import("../views/usergold/index.vue")},
// 客户金币余额
{path:'/usergoldInfo',component:()=>import("../views/usergoldInfo/index.vue")},
// 权限管理
{path:'/permission',component:()=>import("../views/permissions/index.vue")},
{path:'/jtzy/Product/other/test/hwjb/usergoldInfo',component:()=>import("../views/usergoldInfo/index.vue")},
]
},

12
vue/gold-system/src/views/audit/rechargeAudit.vue

@ -19,7 +19,7 @@ const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"http://192.168.8.93:10010/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{}
);
adminData.value = result;
@ -120,7 +120,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge",
"http://39.99.159.73:20090/recharge/recharge",
{ ...getObj.value, rechargeVo: { ...rechargeVo.value } }
);
@ -250,7 +250,7 @@ const getActivity = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/activity/select",
"http://39.99.159.73:20090/recharge/activity/select",
{}
);
@ -269,7 +269,7 @@ const getArea = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/user/search",
"http://39.99.159.73:20090/recharge/user/search",
{}
);
//
@ -334,7 +334,7 @@ const passConfirm = async function () {
console.log("通过对象", passObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/audit/audit/goldedit",
"http://39.99.159.73:20090/audit/audit/goldedit",
passObj.value
);
@ -381,7 +381,7 @@ const rejectConfirm = async function () {
console.log("驳回对象", rejectObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/audit/audit/goldedit",
"http://39.99.159.73:20090/audit/audit/goldedit",
rejectObj.value
);

10
vue/gold-system/src/views/audit/refundAudit.vue

@ -88,7 +88,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/audit/audit/refund",
"http://39.99.159.73:20090/audit/audit/refund",
{ ...getObj.value, detail: { ...detail.value } }
);
@ -216,7 +216,7 @@ const handleClick = function (tab, event) {
const getProduct = async function () {
try {
// POST
const result = await API.post("http://192.168.8.93:10010/product", {});
const result = await API.post("http://39.99.159.73:20090/product", {});
//
console.log("请求成功", result);
@ -234,7 +234,7 @@ const getArea = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/user/search",
"http://39.99.159.73:20090/recharge/user/search",
{}
);
//
@ -296,7 +296,7 @@ const passConfirm = async function () {
console.log("通过对象", passObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/audit/audit/edit",
"http://39.99.159.73:20090/audit/audit/edit",
passObj.value
);
@ -342,7 +342,7 @@ const rejectConfirm = async function () {
console.log("驳回对象", rejectObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/audit/audit/edit",
"http://39.99.159.73:20090/audit/audit/edit",
rejectObj.value
);

12
vue/gold-system/src/views/consume/addConsume.vue

@ -7,14 +7,14 @@ import axios from "axios";
import { ElMessageBox } from "element-plus";
import API from "../../api/index.js";
import moment from "moment";
import _ from 'lodash';
import _ from "lodash";
//
const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"http://192.168.8.93:10010/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{}
);
adminData.value = result;
@ -40,7 +40,7 @@ const add = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/consume/add",
"http://39.99.159.73:20090/consume/add",
addConsume.value
);
if (result.code === 0) {
@ -138,7 +138,7 @@ const user = ref({
const getUser = async function (jwcode) {
try {
// POST
const result = await API.post("http://192.168.8.93:10010/recharge/user", {
const result = await API.post("http://39.99.159.73:20090/recharge/user", {
jwcode: jwcode,
});
@ -168,7 +168,7 @@ const goods = ref([]);
const getGoods = async function () {
try {
// POST
const result = await API.post("http://192.168.8.93:10010/product", {});
const result = await API.post("http://39.99.159.73:20090/product", {});
//
console.log("请求成功", result);
@ -188,7 +188,7 @@ const userGold = ref({});
const getUserGold = async function (jwcode) {
try {
// POST
const result = await API.post("http://192.168.8.93:10010/recharge/user", {
const result = await API.post("http://39.99.159.73:20090/recharge/user", {
jwcode: jwcode,
});
//

4
vue/gold-system/src/views/consume/allConsume.vue

@ -81,7 +81,7 @@ const get = async function (val) {
}
console.log("搜索参数", getObj.value);
// POST
const result = await API.post("http://192.168.8.93:10010/consume/select", {
const result = await API.post("http://39.99.159.73:20090/consume/select", {
...getObj.value,
consumeDetail: { ...detailVo.value },
});
@ -218,7 +218,7 @@ const goods = ref([]);
const getGoods = async function () {
try {
// POST
const result = await API.post("http://192.168.8.93:10010/product", {});
const result = await API.post("http://39.99.159.73:20090/product", {});
//
console.log("请求成功", result);
//

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

@ -19,7 +19,7 @@ const adminData = ref({
const getAdminData = async function () {
try {
const result = await API.post(
"http://192.168.8.93:10010/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{}
);
adminData.value = result;
@ -76,7 +76,7 @@ onMounted(async function () {
@open="handleOpen"
@close="handleClose"
>
<el-menu-item index="/workspace">
<el-menu-item index="/jtzy/Product/other/test/hwjb/workspace">
<el-icon>
<Folder />
</el-icon>
@ -90,8 +90,8 @@ onMounted(async function () {
</el-icon>
<span>财务审核</span>
</template>
<el-menu-item index="/rechargeAudit">充值审核</el-menu-item>
<el-menu-item index="/refundAudit">退款审核</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/rechargeAudit">充值审核</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/refundAudit">退款审核</el-menu-item>
</el-sub-menu>
<el-sub-menu index="3">
@ -101,8 +101,8 @@ onMounted(async function () {
</el-icon>
<span>充值管理</span>
</template>
<el-menu-item index="/activity">活动管理</el-menu-item>
<el-menu-item index="/rate">汇率管理</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/activity">活动管理</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/rate">汇率管理</el-menu-item>
</el-sub-menu>
<el-sub-menu index="4">
@ -112,9 +112,9 @@ onMounted(async function () {
</el-icon>
<span>金币充值</span>
</template>
<el-menu-item index="/addRecharge">新增充值</el-menu-item>
<el-menu-item index="/adminRecharge">客服充值明细</el-menu-item>
<el-menu-item index="/allRecharge">所有充值明细</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/addRecharge">新增充值</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/adminRecharge">客服充值明细</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/allRecharge">所有充值明细</el-menu-item>
</el-sub-menu>
<el-sub-menu index="5">
@ -124,8 +124,8 @@ onMounted(async function () {
</el-icon>
<span>金币消费</span>
</template>
<el-menu-item index="/addConsume">新增消费</el-menu-item>
<el-menu-item index="/allConsume">所有消费明细</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/addConsume">新增消费</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/allConsume">所有消费明细</el-menu-item>
</el-sub-menu>
<el-sub-menu index="6">
@ -135,18 +135,18 @@ onMounted(async function () {
</el-icon>
<span>金币退款</span>
</template>
<el-menu-item index="/addRefund">新增退款</el-menu-item>
<el-menu-item index="/allRefund">退款明细</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/addRefund">新增退款</el-menu-item>
<el-menu-item index="/jtzy/Product/other/test/hwjb/allRefund">退款明细</el-menu-item>
</el-sub-menu>
<el-menu-item index="/usergold">
<el-menu-item index="/jtzy/Product/other/test/hwjb/usergold">
<el-icon>
<Folder />
</el-icon>
客户金币明细
</el-menu-item>
<el-menu-item index="/usergoldInfo">
<el-menu-item index="/jtzy/Product/other/test/hwjb/usergoldInfo">
<el-icon>
<Folder />
</el-icon>

4
vue/gold-system/src/views/login.vue

@ -16,12 +16,12 @@ const form = ref({ jwcode: "", password: "", token: "" });
const login = async function () {
try {
const result = await axios.post(
"http://192.168.8.93:10010/admin/login",
"http://39.99.159.73:20090/admin/login",
form.value
);
if (result.data.code == 200) {
localStorage.setItem("token", result.data.msg);
router.push("/workspace");
router.push("/jtzy/Product/other/test/hwjb/workspace");
ElMessage.success("登录成功");
console.log("请求成功", result);
} else {

21
vue/gold-system/src/views/managerecharge/activity.vue

@ -5,14 +5,14 @@ import { ElMessage, ElMessageBox } from "element-plus";
import axios from "axios";
import moment from "moment";
import API from "../../api/index.js";
import _ from 'lodash';
import _ from "lodash";
//
const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"http://192.168.8.93:10010/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{}
);
adminData.value = result;
@ -75,7 +75,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/activity/select",
"http://39.99.159.73:20090/recharge/activity/select",
{ ...getObj.value, activity: { ...activity.value } }
);
@ -138,7 +138,7 @@ const add = async function () {
console.log("添加对象", addObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/activity/add",
"http://39.99.159.73:20090/recharge/activity/add",
addObj.value
);
@ -193,7 +193,7 @@ const delConfirm = async function () {
console.log("delObj", delObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/activity/edit",
"http://39.99.159.73:20090/recharge/activity/edit",
delObj.value
);
//
@ -341,9 +341,16 @@ onMounted(async function () {
</div>
<div>
<el-table :data="tableData" :height="tableHeight" style="width: 100%">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<el-table-column
type="index"
label="序号"
width="100px"
fixed="left"
>
<template #default="scope">
<span>{{ scope.$index + 1+(getObj.pageNum-1)*getObj.pageSize }}</span>
<span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template>
</el-table-column>
<el-table-column prop="activityName" label="活动名称" />

14
vue/gold-system/src/views/managerecharge/rate.vue

@ -14,7 +14,7 @@ const adminData = ref({
const getAdminData = async function () {
try {
const result = await API.post(
"http://192.168.8.93:10010/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{}
);
adminData.value = result;
@ -74,7 +74,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value);
// POST
const result = await API.post("http://192.168.8.93:10010/rates/search", {
const result = await API.post("http://39.99.159.73:20090/rates/search", {
...getObj.value,
rate: { ...time.value },
});
@ -120,7 +120,7 @@ const addRate = async function () {
console.log("搜索参数", getObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/rates/add",
"http://39.99.159.73:20090/rates/add",
rateAdd.value
);
if (result.code == 0) {
@ -170,7 +170,7 @@ const getEditData = async function (row) {
console.log("搜索参数", getObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/rates/searchById?rateId=" + row.rateId,
"http://39.99.159.73:20090/rates/searchById?rateId=" + row.rateId,
{}
);
@ -205,7 +205,7 @@ const editRate = async function () {
console.log("搜索参数", rateEdit.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/rates/update",
"http://39.99.159.73:20090/rates/update",
rateEdit.value
);
//
@ -232,7 +232,7 @@ const deleteRate = async function (row) {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/rates/delete/ " + row.rateId,
"http://39.99.159.73:20090/rates/delete/ " + row.rateId,
{}
);
//
@ -388,7 +388,7 @@ const delConfirm = async function (row) {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/rates/delete/ " + row.rateId,
"http://39.99.159.73:20090/rates/delete/ " + row.rateId,
{}
);
//

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

@ -7,7 +7,7 @@ import { ElMessageBox } from "element-plus";
import API from "../../api/index.js";
import moment from "moment";
import { range, re } from "mathjs";
import * as xlsx from 'xlsx';
import * as xlsx from "xlsx";
import _ from "lodash";
//
@ -18,7 +18,7 @@ const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"http://192.168.8.93:10010/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{}
);
adminData.value = result;
@ -48,7 +48,7 @@ const add = async function () {
console.log("开始添加充值信息", addRecharge.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge/add",
"http://39.99.159.73:20090/recharge/recharge/add",
addRecharge.value
);
if (result.code === 0) {
@ -130,7 +130,7 @@ const user = ref({
const getUser = async function (jwcode) {
try {
// POST
const result = await API.post("http://192.168.8.93:10010/recharge/user", {
const result = await API.post("http://39.99.159.73:20090/recharge/user", {
jwcode: jwcode,
});
@ -161,7 +161,7 @@ const getActivity = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/activity/select",
"http://39.99.159.73:20090/recharge/activity/select",
{ activity: { status: 1 } }
);
@ -182,7 +182,7 @@ const currency = ref([]);
const getCurrency = async function () {
try {
// POST
const result = await API.post("http://192.168.8.93:10010/rates/status", {});
const result = await API.post("http://39.99.159.73:20090/rates/status", {});
//
console.log("货币请求成功", result);
@ -201,7 +201,7 @@ getCurrency();
const handleAvatarSuccess = (response, uploadFile) => {
imageUrl.value = URL.createObjectURL(uploadFile.raw);
console.log("图片上传成功", response, uploadFile);
addRecharge.value.rechargeVoucher = `http://192.168.8.93:10010/upload/${response.data}`;
addRecharge.value.rechargeVoucher = `http://39.99.159.73:20090/upload/${response.data}`;
console.log("图片名称", addRecharge.value.rechargeVoucher);
};
@ -238,7 +238,7 @@ const getActivityById = async function (row) {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/activity/select",
"http://39.99.159.73:20090/recharge/activity/select",
{ activity: { activityId: row } }
);
addRecharge.value.rechargeRatio = result.data[0].rechargeRatio;
@ -298,7 +298,7 @@ const getJwcodeList = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/user/jwcode",
"http://39.99.159.73:20090/recharge/user/jwcode",
{}
);
@ -322,17 +322,17 @@ const errorCount = ref(0);
//
const validateInput = function (row, index) {
console.log(jwcodeSet.has(row.jwcode), "has");
if (!jwcodeSet.has(row.jwcode) && row.jwcode != '' && row.jwcode != null) {
if (!jwcodeSet.has(row.jwcode) && row.jwcode != "" && row.jwcode != null) {
row.isInputInvalid = true;
row.inputErrorMessage = '精网号不存在';
row.inputErrorMessage = "精网号不存在";
errorCount.value++;
return;
} else {
row.isInputInvalid = false;
row.inputErrorMessage = '';
row.inputErrorMessage = "";
errorCount.value--;
}
}
};
//
const batchRechargeVisible = ref(false);
@ -347,7 +347,7 @@ const batchData = ref([
line: 1,
showInput: true,
isInputInvalid: false,
inputErrorMessage: '',
inputErrorMessage: "",
freeGold: "0",
rechargeGold: "0",
paidGold: "0",
@ -375,7 +375,7 @@ const addLine = function () {
line: ++i.value,
showInput: true,
isInputInvalid: false,
inputErrorMessage: '',
inputErrorMessage: "",
freeGold: "0",
rechargeGold: "0",
paidGold: "0",
@ -387,9 +387,9 @@ const addLines = async function () {
loading.value = true;
try {
loading.value = true; // loadingtrue
console.log(loading.value, "loading.value")
console.log(loading.value, "loading.value");
await new Promise(resolve => setTimeout(resolve, 100)); //
await new Promise((resolve) => setTimeout(resolve, 100)); //
// loadingtrue
await nextTick(); //
@ -398,7 +398,7 @@ const addLines = async function () {
line: ++i.value,
showInput: true,
isInputInvalid: false,
inputErrorMessage: '',
inputErrorMessage: "",
freeGold: "0",
rechargeGold: "0",
paidGold: "0",
@ -415,9 +415,9 @@ const addLines = async function () {
ElMessage.error("添加失败");
} finally {
loading.value = false;
console.log(loading.value, "loading.value")
}
console.log(loading.value, "loading.value");
}
};
//
// const addLines = async function () {
// try {
@ -648,14 +648,14 @@ const changeVoucher = function (row) {
const handleBatchAvatarSuccess = (response, uploadFile) => {
imageUrl.value = URL.createObjectURL(uploadFile.raw);
console.log("图片上传成功", response, uploadFile);
rechargeVoucher.value = `http://192.168.8.93:10010/upload/${response.data}`;
rechargeVoucher.value = `http://39.99.159.73:20090/upload/${response.data}`;
console.log("图片名称", rechargeVoucher.value);
};
//
const batchAdd = async function () {
try {
console.log("batchData===", batchData.value);
let msg = '';
let msg = "";
if (batchData.value.length == 0) {
ElMessage({
type: "error",
@ -677,40 +677,47 @@ const batchAdd = async function () {
batchData.value[i].rechargeWay = "客服充值";
if (
batchData.value[i].jwcode == "" ||
batchData.value[i].jwcode == null) {
batchData.value[i].jwcode == null
) {
msg += `精网号不能为空! <br/>`;
}
if (
batchData.value[i].activityId == "" ||
batchData.value[i].activityId == null) {
batchData.value[i].activityId == null
) {
msg += `活动不能为空! <br/>`;
}
if (
batchData.value[i].paidGold == "" ||
batchData.value[i].paidGold == null) {
batchData.value[i].paidGold == null
) {
msg += `永久金币不能为空! <br/>`;
}
if (
batchData.value[i].freeGold == "" ||
batchData.value[i].freeGold == null) {
batchData.value[i].freeGold == null
) {
msg += `免费金币不能为空! <br/>`;
}
if (
batchData.value[i].rechargeGold == "" ||
batchData.value[i].rechargeGold == null) {
batchData.value[i].rechargeGold == null
) {
msg += `充值金额不能为空! <br/>`;
}
if (
batchData.value[i].payWay == "" ||
batchData.value[i].payWay == null) {
batchData.value[i].payWay == null
) {
msg += `收款方式不能为空! <br/>`;
}
if (
batchData.value[i].rechargeTime == "" ||
batchData.value[i].rechargeTime == null) {
batchData.value[i].rechargeTime == null
) {
msg += `交款时间不能为空! <br/>`;
}
if (msg != '' && msg != null) {
if (msg != "" && msg != null) {
console.log(batchData.value[i]);
ElMessage({
dangerouslyUseHTMLString: true,
@ -724,7 +731,7 @@ const batchAdd = async function () {
console.log("batchData===", batchData.value);
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge/addmore",
"http://39.99.159.73:20090/recharge/recharge/addmore",
{ ...batchData.value }
);
@ -743,8 +750,8 @@ const batchAdd = async function () {
console.log("error===", error);
ElMessage.error("添加失败");
return;
};
}
};
// 使 _.throttle trailing false
const throttledBatchAdd = _.throttle(batchAdd, 2000, { trailing: false });
//
@ -771,7 +778,7 @@ const batchSettingInit = function () {
const batchSettingHandleAvatarSuccess = (response, uploadFile) => {
batchSettingObj.value.imageUrl = URL.createObjectURL(uploadFile.raw);
console.log("图片上传成功", response, uploadFile);
batchSettingObj.value.rechargeVoucher = `http://192.168.8.93:10010/upload/${response.data}`;
batchSettingObj.value.rechargeVoucher = `http://39.99.159.73:20090/upload/${response.data}`;
console.log("图片名称", batchSettingObj.value.rechargeVoucher);
};
//
@ -956,7 +963,7 @@ onMounted(async function () {
style="margin-bottom: 5px"
>
<el-upload
action="http://192.168.8.93:10010/upload"
action="http://39.99.159.73:20090/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="handleAvatarSuccess"
@ -1039,8 +1046,10 @@ onMounted(async function () {
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb">{{
user.buyJb + user.free6 + user.free12 + user.coreJb
}}</span>
<span style="display: inline; white-space: nowrap; color: #b1b1b1" v-if="user.buyJb">(永久金币:{{ user.buyJb
}};免费金币:{{
<span
style="display: inline; white-space: nowrap; color: #b1b1b1"
v-if="user.buyJb"
>(永久金币:{{ user.buyJb }};免费金币:{{
user.free6 + user.free12
}};任务金币:{{ user.coreJb }})</span
>
@ -1095,9 +1104,19 @@ onMounted(async function () {
<!-- <el-button type="primary" @click="addLine()" style="margin-right: 10px">新增一行</el-button> -->
<div style="font-weight: bold; font-size: 20px">
<span>添加</span>
<el-input-number min="1" style="width: 100px;" controls-position="right" v-model="addLineObj"></el-input-number>
<el-input-number
min="1"
style="width: 100px"
controls-position="right"
v-model="addLineObj"
></el-input-number>
<span></span>
<el-button type="primary" @click="throttledAddLines" style="margin-right: 10px">添加</el-button>
<el-button
type="primary"
@click="throttledAddLines"
style="margin-right: 10px"
>添加</el-button
>
</div>
<el-button
type="warning"
@ -1133,10 +1152,16 @@ onMounted(async function () {
</el-table-column>
<el-table-column property="jwcode" label="精网号" width="150px">
<template #default="scope">
<el-input v-if="scope.row.showInput" :class="{ 'is-invalid': scope.row.isInputInvalid }"
@blur="validateInput(scope.row)" v-model="scope.row.jwcode" style="width: 110px" />
<p v-if="scope.row.isInputInvalid" class="error-message">{{
scope.row.inputErrorMessage }}</p>
<el-input
v-if="scope.row.showInput"
:class="{ 'is-invalid': scope.row.isInputInvalid }"
@blur="validateInput(scope.row)"
v-model="scope.row.jwcode"
style="width: 110px"
/>
<p v-if="scope.row.isInputInvalid" class="error-message">
{{ scope.row.inputErrorMessage }}
</p>
</template>
<!-- <template #default="scope">
<el-select-v2 v-if="scope.row.showInput" filterable clearable v-model="scope.row.jwcode"
@ -1188,7 +1213,11 @@ onMounted(async function () {
</el-table-column>
<el-table-column property="freeGold" label="免费金币" width="110px">
<template #default="scope">
<el-input v-if="scope.row.showInput" v-model="scope.row.freeGold" style="width: 70px" />
<el-input
v-if="scope.row.showInput"
v-model="scope.row.freeGold"
style="width: 70px"
/>
<span v-else>{{ scope.row.freeGold }}</span>
</template>
</el-table-column>
@ -1256,7 +1285,7 @@ onMounted(async function () {
<el-table-column property="rechargeVoucher" label="充值凭证">
<template #default="scope">
<el-upload
action="http://192.168.8.93:10010/upload"
action="http://39.99.159.73:20090/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="handleBatchAvatarSuccess"
@ -1369,7 +1398,10 @@ onMounted(async function () {
</el-select>
</el-form-item>
<el-form-item label="永久金币">
<el-input v-model="batchSettingObj.paidGold" placeholder="请输入永久金币"></el-input>
<el-input
v-model="batchSettingObj.paidGold"
placeholder="请输入永久金币"
></el-input>
</el-form-item>
<el-form-item label="免费金币">
<el-input v-model="batchSettingObj.freeGold"></el-input>
@ -1418,7 +1450,7 @@ onMounted(async function () {
</el-form-item>
<el-form-item prop="rechargeVoucher" label="交款凭证">
<el-upload
action="http://192.168.8.93:10010/upload"
action="http://39.99.159.73:20090/upload"
class="avatar-uploader"
:show-file-list="false"
:on-success="batchSettingHandleAvatarSuccess"

10
vue/gold-system/src/views/recharge/adminRecharge.vue

@ -11,7 +11,7 @@ const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"http://192.168.8.93:10010/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{}
);
adminData.value = result;
@ -105,7 +105,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge",
"http://39.99.159.73:20090/recharge/recharge",
{ ...getObj.value, rechargeVo: { ...rechargeVo.value } }
);
@ -233,7 +233,7 @@ const getActivity = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/activity/select",
"http://39.99.159.73:20090/recharge/activity/select",
{}
);
@ -253,7 +253,7 @@ const getArea = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/user/search",
"http://39.99.159.73:20090/recharge/user/search",
{}
);
//
@ -277,7 +277,7 @@ const delConfirm = async function () {
try {
console.log("delObj2", delObj.value);
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge/edit",
"http://39.99.159.73:20090/recharge/recharge/edit",
delObj.value
);
console.log("删除成功", result);

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

@ -86,7 +86,7 @@ const get = async function (val) {
console.log("搜索参数", getObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/recharge",
"http://39.99.159.73:20090/recharge/recharge",
{ ...getObj.value, rechargeVo: { ...rechargeVo.value } }
);
@ -214,7 +214,7 @@ const getActivity = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/activity/select",
"http://39.99.159.73:20090/recharge/activity/select",
{}
);
@ -234,7 +234,7 @@ const getArea = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/user/search",
"http://39.99.159.73:20090/recharge/user/search",
{}
);
//

12
vue/gold-system/src/views/refund/addRefund.vue

@ -7,7 +7,7 @@ import axios from "axios";
import { ElMessageBox } from "element-plus";
import API from "../../api/index.js";
import moment from "moment";
import _ from 'lodash';
import _ from "lodash";
const addRe = ref({
typeR: "0",
@ -17,7 +17,7 @@ const adminData = ref({});
const getAdminData = async function () {
try {
const result = await API.post(
"http://192.168.8.93:10010/admin/userinfo",
"http://39.99.159.73:20090/admin/userinfo",
{}
);
adminData.value = result;
@ -56,7 +56,7 @@ const add = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/refund/add",
"http://39.99.159.73:20090/refund/add",
addRefund.value
);
if (result.code === 0) {
@ -143,7 +143,7 @@ const user = ref({
const getUser = async function (jwcode) {
try {
// POST
const result = await API.post("http://192.168.8.93:10010/recharge/user", {
const result = await API.post("http://39.99.159.73:20090/recharge/user", {
jwcode: jwcode,
});
@ -203,7 +203,7 @@ const getGoods = async function (jwcode) {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/consume/getDeatil/" + addRefund.value.jwcode,
"http://39.99.159.73:20090/consume/getDeatil/" + addRefund.value.jwcode,
{}
);
if (result.code === 0) {
@ -246,7 +246,7 @@ const getProductByOrderCode = async function (item) {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/refund/searchByOrderCode?orderCode=" + item,
"http://39.99.159.73:20090/refund/searchByOrderCode?orderCode=" + item,
{}
);
addRefund.value.contactId = result.data.detailId;

8
vue/gold-system/src/views/refund/allRefund.vue

@ -67,7 +67,7 @@ const get = async function (val) {
}
console.log("搜索参数", getObj.value);
// POST
const result = await API.post("http://192.168.8.93:10010/refund/search", {
const result = await API.post("http://39.99.159.73:20090/refund/search", {
...getObj.value,
detail: { ...detail.value },
});
@ -197,7 +197,7 @@ const getArea = async function () {
try {
// POST
const result = await API.post(
"http://192.168.8.93:10010/recharge/user/search",
"http://39.99.159.73:20090/recharge/user/search",
{}
);
//
@ -227,7 +227,7 @@ const delConfirm = async function () {
console.log("delObj", delObj.value);
// POST
const result = await API.post(
"http://192.168.8.93:10010/refund/softDelete?detailId=" +
"http://39.99.159.73:20090/refund/softDelete?detailId=" +
delObj.value.detailId,
{}
);
@ -246,7 +246,7 @@ const goods = ref([]);
const getGoods = async function () {
try {
// POST
const result = await API.post("http://192.168.8.93:10010/product", {});
const result = await API.post("http://39.99.159.73:20090/product", {});
//
console.log("请求成功", result);
//

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

@ -49,8 +49,8 @@ const updateType = [
},
{
value: "3",
label:"其他"
}
label: "其他",
},
];
// //
@ -79,11 +79,11 @@ const get = async function (val) {
}
console.log("搜索参数", getObj.value);
// POST
const result = await API.post("http://192.168.8.93:10010/detailY", {
const result = await API.post("http://39.99.159.73:20090/detailY", {
...getObj.value,
detailY: { ...detailY.value },
});
const result2 = await API.post("http://192.168.8.93:10010/detailY", {
const result2 = await API.post("http://39.99.159.73:20090/detailY", {
...getAllObj.value,
detailY: { ...detailY.value },
});
@ -273,7 +273,7 @@ const areyour = async function () {
try {
loading.value = true;
const result = await API.post(
"http://192.168.8.93:10010/detailY/searchAll",
"http://39.99.159.73:20090/detailY/searchAll",
{ ...putExcel.value }
);
excelInfo.value = result.data;

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

@ -72,11 +72,11 @@ const get = async function (val) {
}
console.log("搜索参数", getObj.value);
// POST
const result = await API.post("http://192.168.8.93:10010/detailY/select", {
const result = await API.post("http://39.99.159.73:20090/detailY/select", {
...getObj.value,
detailYgold: { ...detailY.value },
});
// const result2 = await API.post("http://192.168.8.93:10010/detailY/select", {
// const result2 = await API.post("http://39.99.159.73:20090/detailY/select", {
// ...getAllObj.value,
// detailY: { ...detailY.value },
// });

256
vue/gold-system/src/views/workspace/index.vue

@ -6,7 +6,7 @@ import * as bs from "vue-icons-plus/bs";
import axios, { all } from "axios";
import API from "../../api/index";
import moment from "moment";
import * as math from 'mathjs';
import * as math from "mathjs";
import { getTime } from "element-plus/es/components/countdown/src/utils.mjs";
//
@ -90,40 +90,40 @@ const get = async function () {
getMiddleBar();
// POST
const result1 = await API.post(
"http://192.168.8.93:10010/statistics/getSumCoin",
"http://39.99.159.73:20090/statistics/getSumCoin",
{}
);
const result2 = await API.post(
"http://192.168.8.93:10010/statistics/a",
"http://39.99.159.73:20090/statistics/a",
{}
);
const result3 = await API.post(
"http://192.168.8.93:10010/statistics/getYearConsumeCoin",
"http://39.99.159.73:20090/statistics/getYearConsumeCoin",
{}
);
const result4 = await API.post(
"http://192.168.8.93:10010/statistics/getDayConsumeCoin",
"http://39.99.159.73:20090/statistics/getDayConsumeCoin",
{}
);
// const result5 = await API.post(
// "http://192.168.8.93:10010/statistics/getMediumAreaPay",
// "http://39.99.159.73:20090/statistics/getMediumAreaPay",
// {}
// );
// const result6 = await API.post(
// "http://192.168.8.93:10010/statistics/getMediumAreaConsume",
// "http://39.99.159.73:20090/statistics/getMediumAreaConsume",
// {}
// );
// const result7 = await API.post(
// "http://192.168.8.93:10010/statistics/getMediuPayCoin",
// "http://39.99.159.73:20090/statistics/getMediuPayCoin",
// {}
// );
// const result8 = await API.post(
// "http://192.168.8.93:10010/statistics/getMediuConsumeCoin",
// "http://39.99.159.73:20090/statistics/getMediuConsumeCoin",
// {}
// );
const result9 = await API.post(
"http://192.168.8.93:10010/statistics/b",
"http://39.99.159.73:20090/statistics/b",
{}
);
@ -368,7 +368,7 @@ const get = async function () {
//
const getMiddleBar = async function () {
const result = await API.post(
"http://192.168.8.93:10010/statistics/getCoinTime",
"http://39.99.159.73:20090/statistics/getCoinTime",
getMiddleBarObj.value
);
@ -393,13 +393,22 @@ const getMiddleBar = async function () {
middleTotalFree.value = 0;
middleTotalTask.value = 0;
middleRecharge.value.forEach((number) => {
middleTotalRecharge.value = math.add(math.bignumber(middleTotalRecharge.value), math.bignumber(number));
middleTotalRecharge.value = math.add(
math.bignumber(middleTotalRecharge.value),
math.bignumber(number)
);
});
middleFree.value.forEach((number) => {
middleTotalFree.value = math.add(math.bignumber(middleTotalFree.value), math.bignumber(number));
middleTotalFree.value = math.add(
math.bignumber(middleTotalFree.value),
math.bignumber(number)
);
});
middleTask.value.forEach((number) => {
middleTotalTask.value = math.add(math.bignumber(middleTotalTask.value), math.bignumber(number));
middleTotalTask.value = math.add(
math.bignumber(middleTotalTask.value),
math.bignumber(number)
);
});
console.log("middleCategory", middleCategory.value);
@ -561,7 +570,7 @@ const getMiddleBar = async function () {
//
const getAreaRank = async function () {
const result = await API.post(
"http://192.168.8.93:10010/statistics/getMee",
"http://39.99.159.73:20090/statistics/getMee",
getAreaRankObj.value
);
@ -956,8 +965,8 @@ onMounted(async function () {
trigger: "item",
position: ["15%", "-3%"],
formatter: function (params) {
return params.seriesName + '<br/>' + params.name;
}
return params.seriesName + "<br/>" + params.name;
},
},
legend: {
bottom: "-1%",
@ -995,8 +1004,8 @@ onMounted(async function () {
trigger: "item",
position: ["15%", "-3%"],
formatter: function (params) {
return params.seriesName + '<br/>' + params.name;
}
return params.seriesName + "<br/>" + params.name;
},
},
legend: {
bottom: "-1%",
@ -1039,8 +1048,18 @@ onMounted(async function () {
trigger: "item",
position: ["15%", "-3%"],
formatter: function (params) {
return params.seriesName + '<br/>' + params.name + (params.value == getSumCoin.value.todayFree ? '</br>6月到期 | ' + statistics.value.free6SumCoin + ' ; 12月到期 | ' + statistics.value.free12SumCoin : '');
}
return (
params.seriesName +
"<br/>" +
params.name +
(params.value == getSumCoin.value.todayFree
? "</br>6月到期 | " +
statistics.value.free6SumCoin +
" ; 12月到期 | " +
statistics.value.free12SumCoin
: "")
);
},
},
legend: {
bottom: "-1%",
@ -1099,7 +1118,7 @@ onMounted(async function () {
<div v-loading="loading">
<el-row :gutter="20">
<el-col :span="6">
<el-card style="height: 260px;">
<el-card style="height: 260px">
<p>当前金币余量</p>
<p class="head-mid-font">
{{ formatNum(getSumCoin.todayTotalCoin) }}
@ -1108,33 +1127,47 @@ onMounted(async function () {
<span v-if="getSumCoin.coinDifference > 0">
<div class="comparedWithYesterday">
<span>较前一天 {{ formatNum(getSumCoin.coinDifference) }}</span>
<span class="red-triangle" style="margin: 6px 0px 0px 7px"></span>
<span
class="red-triangle"
style="margin: 6px 0px 0px 7px"
></span>
</div>
</span>
<span v-if="getSumCoin.coinDifference < 0">
<div class="comparedWithYesterday">
<span>较前一天 {{ formatNum(getSumCoin.coinDifference) }}</span>
<span class="green-triangle" style="margin: 6px 0px 0px 7px"></span>
<span
class="green-triangle"
style="margin: 6px 0px 0px 7px"
></span>
</div>
</span>
<span v-if="getSumCoin.coinDifference == 0">
<div class="comparedWithYesterday">
<span>较前一天 {{ formatNum(getSumCoin.coinDifference) }}</span>
<span class="grey-triangle" style="margin: 6px 0px 0px 7px"></span>
<span
class="grey-triangle"
style="margin: 6px 0px 0px 7px"
></span>
</div>
</span>
</p>
<template #footer>
<span>永久{{ formatNum(getSumCoin.todayRecharge) }}
免费{{ formatNum(getSumCoin.todayFree) }}
<span
>永久{{ formatNum(getSumCoin.todayRecharge) }} 免费{{
formatNum(getSumCoin.todayFree)
}}
任务{{ formatNum(getSumCoin.todayTask) }}
</span>
<p style="font-size: 12px;">免费金币6月到期 | {{ formatNum(statistics.free6SumCoin) }} ; 12月到期 | {{ formatNum(statistics.free12SumCoin) }}</p>
<p style="font-size: 12px">
免费金币6月到期 | {{ formatNum(statistics.free6SumCoin) }} ;
12月到期 | {{ formatNum(statistics.free12SumCoin) }}
</p>
</template>
</el-card>
</el-col>
<el-col :span="6">
<el-card style="height: 260px;">
<el-card style="height: 260px">
<p>全年累计金币数</p>
<p class="head-mid-font">
{{ formatNum(Math.abs(statistics.totalSumCoin)) }}
@ -1143,7 +1176,8 @@ onMounted(async function () {
折合新币累计金额
{{ formatNum(Math.abs(statistics.rechargeSumCoin)) }}
</p>
<template #footer>昨日新增
<template #footer
>昨日新增
{{ formatNum(Math.abs(statistics.totalYesterdaySumCoin)) }}
其中充值
{{ formatNum(Math.abs(statistics.rechargeYesterdaySumCoin)) }}
@ -1151,7 +1185,7 @@ onMounted(async function () {
</el-card>
</el-col>
<el-col :span="6">
<el-card style="height: 260px;">
<el-card style="height: 260px">
<p>全年累计消耗金币数</p>
<p class="head-mid-font">
{{ formatNum(Math.abs(getYearConsumeCoin.yearsumCoin)) }}
@ -1160,14 +1194,16 @@ onMounted(async function () {
消费 {{ formatNum(Math.abs(getYearConsumeCoin.yearConsumeCoin)) }};
退款 {{ formatNum(Math.abs(getYearConsumeCoin.yearRefundCoin)) }}
</p>
<template #footer>昨日新增消耗
<template #footer
>昨日新增消耗
{{ formatNum(Math.abs(getDayConsumeCoin.daysumCoin)) }} ; 消费
{{ formatNum(Math.abs(getDayConsumeCoin.dayConsumeCoin)) }} ; 退款
{{ formatNum(Math.abs(getDayConsumeCoin.dayRefundCoin)) }}</template>
{{ formatNum(Math.abs(getDayConsumeCoin.dayRefundCoin)) }}</template
>
</el-card>
</el-col>
<el-col :span="6">
<el-card style="height: 260px;">
<el-card style="height: 260px">
<p>全年累计充值人数</p>
<p class="head-mid-font">
{{ formatNum(Math.abs(statistics.rechargeCount)) }}
@ -1176,46 +1212,66 @@ onMounted(async function () {
<span v-if="statistics.weekOverWeekRate > 0">
<div class="comparedWithYesterday">
<span>周同比 {{ statistics.weekOverWeekRate }}%</span>
<span class="red-triangle" style="margin: 6px 0px 0px 7px"></span>
<span
class="red-triangle"
style="margin: 6px 0px 0px 7px"
></span>
</div>
</span>
<span v-if="statistics.weekOverWeekRate < 0">
<div class="comparedWithYesterday">
<span>周同比 {{ statistics.weekOverWeekRate }}%</span>
<span class="green-triangle" style="margin: 6px 0px 0px 7px"></span>
<span
class="green-triangle"
style="margin: 6px 0px 0px 7px"
></span>
</div>
</span>
<span v-if="statistics.weekOverWeekRate == 0">
<div class="comparedWithYesterday">
<span>周同比 {{ statistics.weekOverWeekRate }}%</span>
<span class="grey-triangle" style="margin: 6px 0px 0px 7px"></span>
<span
class="grey-triangle"
style="margin: 6px 0px 0px 7px"
></span>
</div>
</span>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
<span v-if="statistics.dayOverDayRate > 0">
<div class="comparedWithYesterday">
<span> 日环比{{ statistics.dayOverDayRate }}%</span>
<span class="red-triangle" style="margin: 6px 0px 0px 7px"></span>
<span
class="red-triangle"
style="margin: 6px 0px 0px 7px"
></span>
</div>
</span>
<span v-if="statistics.dayOverDayRate < 0">
<div class="comparedWithYesterday">
<span> 日环比{{ statistics.dayOverDayRate }}%</span>
<span class="green-triangle" style="margin: 6px 0px 0px 7px"></span>
<span
class="green-triangle"
style="margin: 6px 0px 0px 7px"
></span>
</div>
</span>
<span v-if="statistics.dayOverDayRate == 0">
<div class="comparedWithYesterday">
<span> 日环比{{ statistics.dayOverDayRate }}%</span>
<span class="grey-triangle" style="margin: 6px 0px 0px 7px"></span>
<span
class="grey-triangle"
style="margin: 6px 0px 0px 7px"
></span>
</div>
</span>
</p>
<template #footer>昨日充值人数
<template #footer
>昨日充值人数
{{ formatNum(Math.abs(statistics.rechargeCountYesterday)) }}
其中首充
{{ formatNum(Math.abs(statistics.firstRechargeCountYesterday)) }}
</template>
</template
>
</el-card>
</el-col>
</el-row>
@ -1223,23 +1279,59 @@ onMounted(async function () {
<el-col>
<el-card>
<div style="margin-right: auto; text-align: right">
<el-radio-group v-model="changeTimeRatio" style="margin-right: 10px" @change="changeTime()">
<el-radio-button label="全部" value="allDays" style="border-color: white" />
<el-radio-button label="本日" value="day" style="border-color: white" />
<el-radio-button label="本周" value="week" style="border-color: white" />
<el-radio-button label="本月" value="month" style="border-color: white" />
<el-radio-button label="本年" value="year" style="border-color: white" />
<el-radio-group
v-model="changeTimeRatio"
style="margin-right: 10px"
@change="changeTime()"
>
<el-radio-button
label="全部"
value="allDays"
style="border-color: white"
/>
<el-radio-button
label="本日"
value="day"
style="border-color: white"
/>
<el-radio-button
label="本周"
value="week"
style="border-color: white"
/>
<el-radio-button
label="本月"
value="month"
style="border-color: white"
/>
<el-radio-button
label="本年"
value="year"
style="border-color: white"
/>
</el-radio-group>
<!-- <el-button text @click="allTime()" dark=true>全部</el-button>
<el-button text @click="today()">今日</el-button>
<el-button text @click="thisWeek()">本周</el-button>
<el-button text @click="thisMonth()">本月</el-button>
<el-button text @click="thisYear()">本年</el-button> -->
<el-date-picker v-model="searchTime" type="daterange" range-separator="" start-placeholder="开始时间"
end-placeholder="结束时间" style="width: 200px" :disabled-date="disabledDate" @change="search" />
<el-date-picker
v-model="searchTime"
type="daterange"
range-separator="→"
start-placeholder="开始时间"
end-placeholder="结束时间"
style="width: 200px"
:disabled-date="disabledDate"
@change="search"
/>
</div>
<el-tabs v-model="activeName" class="demo-tabs" @tab-change="handleChange">
<el-tabs
v-model="activeName"
class="demo-tabs"
@tab-change="handleChange"
>
<el-tab-pane label="金币充值" name="recharge">
<div>
合计永久金币
@ -1270,15 +1362,31 @@ onMounted(async function () {
</div>
<div style="width: 310px">
<div class="ranking-header">
<span style="margin-right: 90px; width: 150px">地区金币充值排名</span>
<el-select v-model="goldType" placeholder="请选择金币类型" size="small" style="width: 90px"
@change="changeGoldType">
<el-option v-for="item in gold" :key="item.value" :label="item.label" :value="item.value" />
<span style="margin-right: 90px; width: 150px"
>地区金币充值排名</span
>
<el-select
v-model="goldType"
placeholder="请选择金币类型"
size="small"
style="width: 90px"
@change="changeGoldType"
>
<el-option
v-for="item in gold"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
<div v-loading="areaRankLoading">
<el-scrollbar height="360px">
<div v-for="(item, index) in areaRank" :key="item" class="ranking-item">
<div
v-for="(item, index) in areaRank"
:key="item"
class="ranking-item"
>
<!-- <component :is="findBsComponent(index)" /> -->
<span style="width: 15px; text-align: center">{{
index + 1
@ -1323,15 +1431,31 @@ onMounted(async function () {
</div>
<div style="width: 310px">
<div class="ranking-header">
<span style="margin-right: 90px; width: 150px">地区金币消费排名</span>
<el-select v-model="goldType" placeholder="请选择金币类型" size="small" style="width: 90px"
@change="changeGoldType">
<el-option v-for="item in gold" :key="item.value" :label="item.label" :value="item.value" />
<span style="margin-right: 90px; width: 150px"
>地区金币消费排名</span
>
<el-select
v-model="goldType"
placeholder="请选择金币类型"
size="small"
style="width: 90px"
@change="changeGoldType"
>
<el-option
v-for="item in gold"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
<div v-loading="areaRankLoading">
<el-scrollbar height="360px">
<div v-for="(item, index) in areaRank" :key="item" class="ranking-item">
<div
v-for="(item, index) in areaRank"
:key="item"
class="ranking-item"
>
<!-- <component :is="findBsComponent(index)" /> -->
<span style="width: 15px; text-align: center">{{
index + 1
@ -1370,8 +1494,14 @@ onMounted(async function () {
<template #header>
<div class="card-header" style="display: flex">
<span class="tail-head">四大学科类别占比</span>
<el-radio-group v-model="platform" fill="#ffffff" text-color="#409eff" size="small"
@change="changePlatform" style="margin-left: auto">
<el-radio-group
v-model="platform"
fill="#ffffff"
text-color="#409eff"
size="small"
@change="changePlatform"
style="margin-left: auto"
>
<el-radio-button label="全部平台" value="全部平台" />
<el-radio-button label="ERP" value="ERP" />
<el-radio-button label="HC" value="HC" />

Loading…
Cancel
Save