|
|
@ -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", |
|
|
|
{} |
|
|
|
); |
|
|
|
|
|
|
@ -214,13 +214,13 @@ const get = async function () { |
|
|
|
ERPData.value.forEach((item, index) => |
|
|
|
item == "" |
|
|
|
? (ERPData.value[index] = { |
|
|
|
value: 0, |
|
|
|
name: "第" + (index + 1) + "学科" + 0, |
|
|
|
}) |
|
|
|
value: 0, |
|
|
|
name: "第" + (index + 1) + "学科" + 0, |
|
|
|
}) |
|
|
|
: (ERPData.value[index] = { |
|
|
|
value: item[0], |
|
|
|
name: "第" + (index + 1) + "学科" + item[0], |
|
|
|
}) |
|
|
|
value: item[0], |
|
|
|
name: "第" + (index + 1) + "学科" + item[0], |
|
|
|
}) |
|
|
|
); |
|
|
|
console.log("ERPData", ERPData.value); |
|
|
|
HCData.value = [ |
|
|
@ -240,13 +240,13 @@ const get = async function () { |
|
|
|
HCData.value.forEach((item, index) => |
|
|
|
item == "" |
|
|
|
? (HCData.value[index] = { |
|
|
|
value: 0, |
|
|
|
name: "第" + (index + 1) + "学科" + 0, |
|
|
|
}) |
|
|
|
value: 0, |
|
|
|
name: "第" + (index + 1) + "学科" + 0, |
|
|
|
}) |
|
|
|
: (HCData.value[index] = { |
|
|
|
value: item[0], |
|
|
|
name: "第" + (index + 1) + "学科" + item[0], |
|
|
|
}) |
|
|
|
value: item[0], |
|
|
|
name: "第" + (index + 1) + "学科" + item[0], |
|
|
|
}) |
|
|
|
); |
|
|
|
console.log("HCData", HCData.value); |
|
|
|
LinkData.value = [ |
|
|
@ -266,13 +266,13 @@ const get = async function () { |
|
|
|
LinkData.value.forEach((item, index) => |
|
|
|
item == "" |
|
|
|
? (LinkData.value[index] = { |
|
|
|
value: 0, |
|
|
|
name: "第" + (index + 1) + "学科" + 0, |
|
|
|
}) |
|
|
|
value: 0, |
|
|
|
name: "第" + (index + 1) + "学科" + 0, |
|
|
|
}) |
|
|
|
: (LinkData.value[index] = { |
|
|
|
value: item[0], |
|
|
|
name: "第" + (index + 1) + "学科" + item[0], |
|
|
|
}) |
|
|
|
value: item[0], |
|
|
|
name: "第" + (index + 1) + "学科" + item[0], |
|
|
|
}) |
|
|
|
); |
|
|
|
console.log("LinkData", LinkData.value); |
|
|
|
goldData.value = [ |
|
|
@ -292,13 +292,13 @@ const get = async function () { |
|
|
|
goldData.value.forEach((item, index) => |
|
|
|
item == "" |
|
|
|
? (goldData.value[index] = { |
|
|
|
value: 0, |
|
|
|
name: "第" + (index + 1) + "学科" + 0, |
|
|
|
}) |
|
|
|
value: 0, |
|
|
|
name: "第" + (index + 1) + "学科" + 0, |
|
|
|
}) |
|
|
|
: (goldData.value[index] = { |
|
|
|
value: item[0], |
|
|
|
name: "第" + (index + 1) + "学科" + item[0], |
|
|
|
}) |
|
|
|
value: item[0], |
|
|
|
name: "第" + (index + 1) + "学科" + item[0], |
|
|
|
}) |
|
|
|
); |
|
|
|
console.log("goldData", goldData.value); |
|
|
|
allData.value = [ |
|
|
@ -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 |
|
|
|
); |
|
|
|
|
|
|
@ -726,8 +735,8 @@ const search = function () { |
|
|
|
console.log( |
|
|
|
"searchTime", |
|
|
|
moment(searchTime.value[0]).format("YYYY-MM-DD") + |
|
|
|
"至" + |
|
|
|
moment(searchTime.value[1]).format("YYYY-MM-DD") |
|
|
|
"至" + |
|
|
|
moment(searchTime.value[1]).format("YYYY-MM-DD") |
|
|
|
); |
|
|
|
|
|
|
|
getMiddleBarObj.value.searchStartTime = moment(searchTime.value[0]).format( |
|
|
@ -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> </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,21 +1362,37 @@ 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 |
|
|
|
}}</span> |
|
|
|
<span style="margin-left: 10px">{{ item.name }}</span> |
|
|
|
<span style="margin-left: auto;margin-right: 10px">{{ |
|
|
|
<span style="margin-left: auto; margin-right: 10px">{{ |
|
|
|
formatNum(item.value) |
|
|
|
}}</span> |
|
|
|
</div> |
|
|
@ -1323,21 +1431,37 @@ 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 |
|
|
|
}}</span> |
|
|
|
<span style="margin-left: 10px">{{ item.name }}</span> |
|
|
|
<span style="margin-left: auto;margin-right: 10px">{{ |
|
|
|
<span style="margin-left: auto; margin-right: 10px">{{ |
|
|
|
formatNum(item.value) |
|
|
|
}}</span> |
|
|
|
</div> |
|
|
@ -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" /> |
|
|
|