oil-station/fuintAdmin/src/views/shopowner.vue
2024-10-14 14:24:53 +08:00

1165 lines
33 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="home-index">
<el-carousel height="230px">
<el-carousel-item v-for="(item,index) in bannerList" :key="index">
<div class="bannser">-
<img :src="imagePath+item.productImage" alt="" >
</div>
</el-carousel-item>
</el-carousel>
<div class="b-bs">
<div class="left-box">
<div class="h-tt">核心数据</div>
<div style="display: flex;justify-content: space-between">
<div class="san-box">
<div class="r-title">{{ storeTotal.allAmount || 0 }}</div>
<div class="r-size">总交易金额(元)</div>
</div>
<div class="san-box" style="background: #fc6464">
<div class="r-title">{{ storeTotal.allNum || 0 }}</div>
<div class="r-size">总交易笔数</div>
</div>
<div class="san-box" style="background: #fcb12c">
<div class="r-title">{{ storeTotal.unitPrice || 0 }}</div>
<div class="r-size">笔均单价(元/单)</div>
</div>
<div class="san-box" style="background: #5bc557;">
<div class="r-title">{{ storeTotal.userBalance || 0 }}</div>
<div class="r-size">累计会员余额(万元)</div>
</div>
</div>
</div>
<div class="right-box">
<div class="title_">
<div>通知中心</div>
<div style="font-size: 12px;color: #BBBBBB;cursor: pointer; display: flex;align-items: center" @click="goList()" >更多 <i class="el-icon-arrow-right"></i> </div>
</div>
<!-- <div class="hang_" v-for="(item,index) in 4" :key="index" >【到期提醒】百业兴智慧油站系统将于2024年07月10日到期...</div>-->
<div class="hang_" v-for="(item,index) in noticeList" :key="index" >【{{ item.notificationType }}】{{ item.templateContent }}</div>
<div class="hang_" v-if="this.noticeList.length==0">暂无通知</div>
</div>
</div>
<div class="b-bs">
<div class="left-box-t">
<div class="d-s">
<div class="h-tt" style="margin-right: 15px" >数据看板</div>
<el-dropdown placement="bottom-start" >
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">近一周 <i class="el-icon-arrow-down el-icon--right"></i></div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>今日</el-dropdown-item>
<el-dropdown-item>昨日</el-dropdown-item>
<el-dropdown-item>近一周</el-dropdown-item>
<el-dropdown-item>近一月</el-dropdown-item>
<el-dropdown-item>近一周</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div class="h-anniu" :class="{'q-anniu' : timeShow == true}" @click="timeShow = true" > <img src="../assets/images/zdy.png" style="width: 14px; height: 14px" > 自定义</div>
<div style="margin-right: 40px">
<el-date-picker
v-model="value1"
type="daterange"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@blur="getStoreAmount">
</el-date-picker>
</div>
</div>
<div class="d-s" style="margin-top: 15px">
<div class="k-box">
<div class="d-s" style="font-size: 12px;color: #999999;">
<div class="sian"></div>
<div style="color: #333">油品销售金额(元)/交易笔数</div>
</div>
<div class="num-size">{{ storeAmount.oilAmount || 0 }}/{{ storeAmount.oilNum || 0 }}</div>
</div>
<div class="k-box">
<div class="d-s" style="font-size: 12px;color: #999999;">
<div class="sian"></div>
<div style="color: #333">会员充值金额(元)/充值笔数</div>
</div>
<div class="num-size">{{ storeAmount.userRechargeAmount || 0 }}/{{ storeAmount.userRechargeNum || 0 }}</div>
</div>
<div class="k-box">
<div class="d-s" style="font-size: 12px;color: #999999;">
<div class="sian"></div>
<div style="color: #333">便利店销售金额(元)/交易笔数</div>
</div>
<div class="num-size">{{ storeAmount.minimartAmount || 0 }}/{{ storeAmount.minimartNum || 0 }}</div>
</div>
<div class="k-box">
<div class="d-s" style="font-size: 12px;color: #999999;">
<div class="sian"></div>
<div style="color: #333">积分商城销售金额(元)/兑换笔数</div>
</div>
<div class="num-size">{{ storeAmount.pointMallAmount || 0 }}/{{ storeAmount.pointMallNum || 0 }}</div>
</div>
</div>
<div class="hui-hang"></div>
<div class="d-s" >
<div>
<div class="h-tt" >数据分析</div>
<div id="ccc" style="width: 300px;height: 200px; "></div>
</div>
<div class="h-r-ba"></div>
<div>
<!-- <div class="h-tt" >活跃油站</div>-->
<div class="d-s" style="justify-content: space-between">
<div id="cccc" style="width: 300px;height: 200px;margin-right: 50px"></div>
<div id="ccct" style="width: 300px;height: 200px;"></div>
</div>
</div>
</div>
</div>
<div class="right-box-t" >
<div class="h-tt" >
<div>硬件设备</div>
<el-popover
placement="top-start"
title="联系人:某某某"
width="200"
trigger="hover"
content="联系电话1352415811">
<img slot="reference" style="width: 28px; height: 28px " src="../assets/images/telindex.png">
</el-popover>
</div>
<div style="height: 90%;overflow: auto;scrollbar-width: none;">
<div class="d-s" style="margin: 30px 0px" v-for="(item,index) in hardwareList" :key="index" >
<div class="r-img">
<img :src="imagePath + item.image" style="width: 84px;height: 70px">
</div>
<div style="font-size: 14px">{{ item.name }}</div>
</div>
</div>
</div>
</div>
<div class="b-bs">
<div class="left-box-t">
<div class="d-s">
<div class="h-tt" style="margin-right: 15px" >油品交易分析</div>
<el-dropdown placement="bottom-start" >
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">近一周 <i class="el-icon-arrow-down el-icon--right"></i></div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>今日</el-dropdown-item>
<el-dropdown-item>昨日</el-dropdown-item>
<el-dropdown-item>近一周</el-dropdown-item>
<el-dropdown-item>近一月</el-dropdown-item>
<el-dropdown-item>近一周</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div class="h-anniu" :class="{'q-anniu' : timeShow == true}" @click="timeShow = true" > <img src="../assets/images/zdy.png" style="width: 14px; height: 14px" > 自定义</div>
<div style="margin-right: 40px">
<el-date-picker
v-model="value1"
type="daterange"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@blur="getStoreAmount">
</el-date-picker>
</div>
</div>
</div>
<div class="right-box-t">
<div style="font-size: 16px;font-weight: bold"><span style="margin-right: 15px">员工排行</span> <el-dropdown placement="bottom-start" >
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">近一周 <i class="el-icon-arrow-down el-icon--right"></i></div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>今日</el-dropdown-item>
<el-dropdown-item>昨日</el-dropdown-item>
<el-dropdown-item>近一周</el-dropdown-item>
<el-dropdown-item>近一月</el-dropdown-item>
<el-dropdown-item>近一周</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown></div>
<div class="hui-box">
<div style="width: 10%">排名</div>
<div>员工姓名</div>
<div style="width: 25%">会员充值金额</div>
<div style="width: 25%">油品销售金额</div>
<div>总销售额</div>
</div>
<div style="overflow: auto; scrollbar-width: none; height: 74% ">
<div class="hang-box" v-for="(item,index) in employeList" :key="index">
<div style="width: 10%">{{index +1}}</div>
<div>{{ item.realName }}</div>
<div style="width: 25%">{{item.cardSum}}</div>
<div style="width: 25%">{{item.oilSum}}</div>
<div>{{item.totalSum}}</div>
</div>
</div>
</div>
</div>
<div class="bottom_">
<div class="d-s">
<div class="h-tt" style="margin-right: 15px" >数据统计</div>
<el-dropdown placement="bottom-start" >
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">近一周 <i class="el-icon-arrow-down el-icon--right"></i></div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>今日</el-dropdown-item>
<el-dropdown-item>昨日</el-dropdown-item>
<el-dropdown-item>近一周</el-dropdown-item>
<el-dropdown-item>近一月</el-dropdown-item>
<el-dropdown-item>近一周</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div class="h-anniu" :class="{'q-anniu' : timeShow == true}" @click="timeShow = true" > <img src="../assets/images/zdy.png" style="width: 14px; height: 14px" > 自定义</div>
<div style="margin-right: 40px">
<el-date-picker
v-model="value1"
type="daterange"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@blur="getStoreAmount">
</el-date-picker>
</div>
</div>
<div id="ctct" style="width: 100%; height: 315px;background: linear-gradient( 360deg, #F8F0E7 0%, #FFFFFF 100%); "></div>
</div>
</div>
</template>
<script>
import echarts from "echarts";
import {selectStoreAmount, storeAmountIndex, storeTotalIndex} from "@/api/indexBanner";
import {getListApi} from "@/api/setting/hardware";
import {selectChildByDeptId} from "@/api/system/Site/site";
import {parseTime} from "@/utils/fuint";
import {getBannerListApi} from "@/api/sys/banner";
import {getNotificationlogList} from "@/api/sys/sysNotificationlog";
import {employeeSalesApi} from "@/api/indexStatistics";
import {getDataBoard, getTotalAmount} from "@/api/allOrder";
export default {
props:["accountId"],
data(){
return{
xShow:false,
timeShow:false,
form: {},
timeList:[
"今日",
"近一周",
"近一月",
"近一年",
],
options: [{
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}, {
value: '选项3',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}],
value: '',
value1: [],
value2: [],
imagePath: process.env.VUE_APP_SERVER_URL,
queryParams:{},
// 店铺数量
storeTotal:{},
// 店铺金额
storeAmount:{},
// banner图列表
bannerList:{},
storeList:[],
hardwareList:[],
noticeList:[],
employeList:[],
}
},
created() {
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
this.value1 = [parseTime(oneWeekAgo), parseTime(nowDate)]
this.getStoreTotal()
// this.selectChildByDeptIdApi()
this.getStoreAmount()
this.selectBannerList()
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.value2 = [start, new Date()];
this.getStoreList()
this.getHardwareList()
this.getNoticeList()
this.getEmployeList()
},
mounted() {
// this.initChart()
},
methods: {
goList() {
this.$router.push('/notificationList/index')
},
// 获取员工排行信息
getEmployeList() {
this.employeLoading = true
employeeSalesApi().then(res => {
if (res.code == 200) {
if (res.data.length >= 10) {
this.employeList = res.data.slice(0, 10);
} else {
this.employeList = res.data
}
this.employeLoading = false
}
})
},
getNoticeList() {
getNotificationlogList({pageNo: 1, pageSize: 4}).then(res => {
this.noticeList = res.data.records
})
},
getHardwareList() {
getListApi({page: 1, pageSize: 3, status: '1'}).then(res => {
this.hardwareList = res.data.records;
this.hardwareList.forEach(item => {
if (item.image.includes(",")) {
item.image = item.image.split(",")[0]
}
})
})
},
getStoreList() {
selectStoreAmount(this.addDateRange({}, this.value2)).then(res => {
this.storeList = res.data
this.initChart()
})
},
// 选择机构信息
chooseDept() {
this.options.forEach(item => {
if (item.deptId == this.value) {
this.queryParams.ancestors = item.ancestors
}
})
this.getStoreAmount()
},
// banner图
selectBannerList() {
let queryParams = {
pageNo: 1,
pageSize: 10,
systemPosition: "首页",
bannerStatus: true
}
getBannerListApi(queryParams).then(res => {
this.bannerList = res.data.records
})
},
// 查询
selectChildByDeptIdApi() {
selectChildByDeptId().then(res => {
this.options = res.data
})
},
// 核心数据
getStoreTotal() {
getTotalAmount().then(res => {
this.storeTotal = res.data
})
},
getStoreAmount() {
getDataBoard(this.addDateRange(this.queryParams, this.value1)).then(res => {
this.storeAmount = res.data
this.initChart()
})
},
countPercentage(upNum, downNum) {
let percentage = 0;
percentage = (upNum / downNum) * 100
return percentage.toFixed(2)
},
initChart() {
const chart = echarts.init(document.getElementById('ccc'))
const chart1 = echarts.init(document.getElementById('cccc'))
const chart2 = echarts.init(document.getElementById('ccct'))
const chart3 = echarts.init(document.getElementById('ctct'))
const chart4 = echarts.init(document.getElementById('cccf'))
let dataList = []
let allTotal = 0
if (this.storeAmount.oilNameList) {
this.storeAmount.oilNameList.forEach(item => {
allTotal += item.countNum
})
this.storeAmount.oilNameList.forEach(item => {
let data = {value: 0, name: ""}
data.value = this.countPercentage(item.countNum, allTotal);
data.name = item.oilName + item.oilType + "占比"
dataList.push(data)
})
}
let storeNameList = []
let oilAmountList = []
let noOilAmountList = []
let rechargeBalanceList = []
let consumeBalanceList = []
let userBalanceList = []
if (this.storeList.length > 0) {
this.storeList.forEach(item => {
storeNameList.push(item.storeName)
oilAmountList.push(item.oilAmount)
noOilAmountList.push(item.noOilAmount)
rechargeBalanceList.push(item.userRechargeBalance)
consumeBalanceList.push(item.userConsumeBalance)
userBalanceList.push(item.userBalance)
})
}
const option = {
color: [
'#b7f1e2',
'#fc7150',
'#fea500',
'#5facfe',
],
tooltip: {
trigger: 'item'
},
series: [
{
name: 'Access From',
type: 'pie',
roseType: 'area',
radius: [5, '80%'],
// data: [
// { value: 36, name: '#98汽油占比' },
// { value: 42, name: '0#柴油占比' },
// { value: 40, name: '#95汽油占比' },
// { value: 38, name: '#92柴油占比' },
//
//
// ],
data: dataList,
emphasis: {
itemStyle: {
shadowBlur: 10,
borderRadius: 8,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
const option1 = {
color: [
'#3B6ADE',
'#fe8c4a',
],
tooltip: {
trigger: 'item'
},
series: [
{
name: 'Access From',
type: 'pie',
radius: '80%',
data: [
// { value: 28, name: '28%' },
// { value: 72, name: '72%' },
{
value: this.countPercentage(Number(this.storeAmount.oilNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.noOilNum)),
name: "油品交易占比"
},
{
value: this.countPercentage(Number(this.storeAmount.noOilNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.noOilNum)),
name: "非油品交易占比"
},
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
const option2 = {
color: [
'#46c2c4',
'#6e4dd8',
'#214790',
'#d55f5f',
],
tooltip: {
trigger: 'item'
},
series: [
{
name: 'Access From',
type: 'pie',
radius: [50, '80%'],
data: [
// { value: 28, name: '会员充值占比' },
// { value: 72, name: '积分商城交易占比' },
// { value: 28, name: '油品交易占比' },
// { value: 72, name: '便利店交易占比' },
{
value: this.countPercentage(Number(this.storeAmount.userNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.userNum) + Number(this.storeAmount.integralNum) + Number(this.storeAmount.goodNum)),
name: '会员充值占比'
},
{
value: this.countPercentage(Number(this.storeAmount.integralNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.userNum) + Number(this.storeAmount.integralNum) + Number(this.storeAmount.goodNum)),
name: '积分商城交易占比'
},
{
value: this.countPercentage(Number(this.storeAmount.oilNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.userNum) + Number(this.storeAmount.integralNum) + Number(this.storeAmount.goodNum)),
name: '油品交易占比'
},
{
value: this.countPercentage(Number(this.storeAmount.goodNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.userNum) + Number(this.storeAmount.integralNum) + Number(this.storeAmount.goodNum)),
name: '便利店交易占比'
},
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
const option3 = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
crossStyle: {
color: '#999'
}
}
},
legend: {
data: ['Evaporation', '油品交易额', '非油品交易额', '会员充值金额', '会员消费金额', '会员余额']
},
xAxis: [
{
type: 'category',
// data: ['中建锦绣广场1站', '中建锦绣广场2站', '中建锦绣广场3站', '中建锦绣广场4站', '中建锦绣广场5站', '中建锦绣广场6站', '中建锦绣广场7站'],
data: storeNameList,
axisPointer: {
type: 'shadow'
}
}
],
yAxis: [
{
type: 'value',
name: '金额(元)',
// min: 0,
// max: 10000,
// interval: 2000,
axisLabel: {
formatter: '{value}'
}
}
// {
// type: 'value',
// name: '',
// min: 0,
// max: 25,
// interval: 5,
// axisLabel: {
// formatter: '{value} '
// }
// }
],
series: [
{
name: '油品交易额',
color: '#FF9655',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
barGap: '60%',
// data: [
// 2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
// ]
data: oilAmountList
},
{
name: '非油品交易额',
color: '#55F3FF',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
// data: [
// 2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
// ]
data: noOilAmountList
},
{
name: '会员充值金额',
color: '#0DC291',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
// data: [
// 2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
// ]
data: rechargeBalanceList
},
{
name: '会员消费金额',
color: '#fe8c4a',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
// data: [
// 2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
// ]
data: consumeBalanceList
},
{
name: '会员余额',
color: '#D55F5F',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
// data: [
// 2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3
// ]
data: userBalanceList
}
],
grid: {
left: '3%',
right: '3%',
bottom: '3%',
containLabel: true
}
};
const option4 = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
crossStyle: {
color: '#999'
}
}
},
legend: {
data: ['Evaporation', '油品交易额', '非油品交易额', '会员充值金额', '会员消费金额', '会员余额']
},
xAxis: [
{
type: 'category',
// data: ['中建锦绣广场1站', '中建锦绣广场2站', '中建锦绣广场3站', '中建锦绣广场4站', '中建锦绣广场5站', '中建锦绣广场6站', '中建锦绣广场7站'],
data: storeNameList,
axisPointer: {
type: 'shadow'
}
}
],
yAxis: [
{
type: 'value',
name: '金额(元)',
// min: 0,
// max: 10000,
// interval: 2000,
axisLabel: {
formatter: '{value}'
}
}
// {
// type: 'value',
// name: '',
// min: 0,
// max: 25,
// interval: 5,
// axisLabel: {
// formatter: '{value} '
// }
// }
],
series: [
{
name: '油品交易额',
color: '#FF9655',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
barGap: '60%',
// data: [
// 2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
// ]
data: oilAmountList
},
{
name: '非油品交易额',
color: '#55F3FF',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
// data: [
// 2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
// ]
data: noOilAmountList
},
{
name: '会员充值金额',
color: '#0DC291',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
// data: [
// 2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
// ]
data: rechargeBalanceList
},
{
name: '会员消费金额',
color: '#fe8c4a',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
// data: [
// 2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
// ]
data: consumeBalanceList
},
{
name: '会员余额',
color: '#D55F5F',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
// data: [
// 2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3
// ]
data: userBalanceList
}
],
grid: {
left: '3%',
right: '3%',
bottom: '3%',
containLabel: true
}
};
chart.setOption(option)
chart1.setOption(option1)
chart2.setOption(option2)
chart3.setOption(option3)
chart4.setOption(option4)
}
}
}
</script>
<style scoped lang="scss">
.app-container {
width: 100%;
height: 100%;
background: #f4f5f9;
}
.d-s {
display: flex;
align-items: center;
}
.bannser {
width: 100%;
height: 230px;
border-radius: 8px;
overflow: hidden;
img {
width: 100%;
height: 100%;
}
}
.b-bs {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 15px;
}
.left-box {
width: 74%;
background: #FFFFFF;
border-radius: 10px 10px 10px 10px;
border: 1px solid #FFFFFF;
height: 192px;
//display: flex;
//align-items: center;
//justify-content: space-between;
box-sizing: border-box;
padding: 15px;
}
.left-box-t {
width: 74%;
box-sizing: border-box;
padding: 15px;
border-radius: 8px;
background: #fff;
border: 1px solid #FFFFFF;
height: 380px;
}
.right-box {
width: 25%;
border-radius: 8px;
background: #fff;
border: 1px solid #FFFFFF;
height: 192px;
box-sizing: border-box;
padding: 15px;
}
.right-box-t {
width: 25%;
border-radius: 8px;
background: #fff;
border: 1px solid #FFFFFF;
height: 380px;
box-sizing: border-box;
padding: 15px;
}
.san-box {
width: 24%;
height: 100px;
box-sizing: border-box;
border-radius: 8px;
background: #fe8c4a;
margin: 15px auto;
box-sizing: border-box;
padding: 20px 40px;
}
.r-title {
font-weight: bold;
font-size: 42px;
color: #FFFFFF;
text-align: center;
}
.r-size {
font-size: 14px;
color: #FFFFFF;
text-align: center;
}
.title_ {
font-size: 16px;
color: #333333;
font-weight: bold;
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
.hang_ {
width: 100%;
white-space: nowrap; //不换行
overflow: hidden; //超出部分隐藏
text-overflow: ellipsis; //文本溢出显示省略号
font-size: 14px;
color: #333;
margin: 14px auto;
}
.h-tt {
font-size: 16px;
color: #333333;
font-weight: bold;
display: flex;
justify-content: space-between;
}
.q-anniu {
width: 80px;
height: 26px;
background: #FF9655 !important;
border-radius: 4px 4px 4px 4px;
display: flex;
align-items: center;
justify-content: center;
color: #fff !important;
font-size: 12px;
cursor: pointer;
margin-right: 20px;
}
.h-anniu {
width: 80px;
height: 26px;
background: #fafafa;
border-radius: 4px 4px 4px 4px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
margin-right: 20px;
font-weight: 400;
font-size: 12px;
color: #555555;
}
.k-box {
width: 24%;
height: 68px;
background: #FFFFFF;
border-radius: 8px;
border: 1px solid #e1e0e0;
box-sizing: border-box;
margin: 0 auto;
padding: 10px;
}
.num-size {
font-weight: bold;
font-size: 24px;
color: #555555;
}
.sian {
width: 6px;
height: 6px;
background: #2BBCFF;
border-radius: 50%;
margin-right: 5px;
}
.hui-hang {
width: 100%;
height: 5px;
background: #F4F5F9;
margin: 15px auto;
}
.h-r-ba {
height: 170px;
margin: 0px 50px;
width: 5px;
background: #f4f5f9;
}
.r-img {
width: 84px;
height: 70px;
margin-right: 20px;
}
.bottom_ {
width: 100%;
border-radius: 10px;
background: #fff;
box-sizing: border-box;
padding: 20px;
margin-top: 20px;
}
.anniu-h {
width: 80px;
height: 26px;
background: #FAFAFA;
border-radius: 4px 4px 4px 4px;
border: 1px solid #DDDDDD;
display: flex;
align-items: center;
justify-content: center;
color: #777777;
margin-right: 20px;
}
.anniu-act {
background: #FF9655 !important;
border: 1px solid #FF9655 !important;
color: #fff;
}
.la-left {
width: 73%;
background: #fff;
border-radius: 10px;
}
.la-right {
height: 25%;
background: #fff;
border-radius: 10px;
}
.hui-box {
background: #F4F5F9;
border-radius: 8px;
width: 100%;
box-sizing: border-box;
padding: 10px;
display: flex;
font-size: 14px;
justify-content: space-between;
margin: 10px auto;
div {
width: 20%;
text-align: center;
}
}
.hang-box {
border-radius: 8px;
font-size: 14px;
width: 100%;
box-sizing: border-box;
padding: 5px;
display: flex;
justify-content: space-between;
margin: 0px auto;
div {
width: 20%;
text-align: center;
}
}
.home-index {
}
</style>