oil-station/fuintAdmin/src/views/index.vue

220 lines
5.6 KiB
Vue
Raw Normal View History

2023-10-09 11:06:01 +08:00
<template>
<div class="app-container">
2023-11-25 09:04:19 +08:00
<topindex></topindex>
<centenrindex></centenrindex>
<bottomindex></bottomindex>
2023-12-14 15:26:00 +08:00
<bottom_z></bottom_z>
2023-10-09 11:06:01 +08:00
</div>
</template>
<script>
import { getHomeData, getStatisticData } from "@/api/home";
2023-11-25 09:04:19 +08:00
import topindex from "@/views/indexcomponents/topindex.vue";
import centenrindex from "@/views/indexcomponents/centenrindex.vue";
import bottomindex from "@/views/indexcomponents/bottomindex.vue";
2023-12-14 15:26:00 +08:00
import bottom_z from "@/views/indexcomponents/bottom_z.vue";
2023-10-09 11:06:01 +08:00
export default {
name: "HomePage",
components: {
2023-11-25 09:04:19 +08:00
centenrindex,
topindex,
2023-12-14 15:26:00 +08:00
bottomindex,
bottom_z
2023-11-25 09:04:19 +08:00
2023-10-09 11:06:01 +08:00
},
data() {
return {
loading: false,
homeData: { todayUser: 0, totalUser: 0, todayOrder: 0, totalOrder: 0, todayPay: 0, totalPay: 0, todayActiveUser: 0, totalPayUser: 0 },
chart1: { title: '近七日订单数量', color: '#ff5b57', chartType: 'bar', header: ['订单统计'] },
chart2: { title: '近七日会员活跃数', color: '#00acac', chartType: 'line', header: ['会员统计'] },
chartData1: [],
chartData2: [],
};
},
created() {
2023-11-11 10:57:49 +08:00
// this.getHomeData();
2023-10-09 11:06:01 +08:00
this.getChartsData();
2024-01-05 14:02:20 +08:00
2023-10-09 11:06:01 +08:00
},
methods: {
// 查询首页数据
getHomeData() {
this.loading = true;
getHomeData().then(response => {
this.homeData = response.data;
this.loading = false
}
);
},
// 查询统计数据
getChartsData() {
const app = this;
app.loading = true;
// 近7日订单数量和活跃会员数量
getStatisticData({ tag : 'order,user_active' }).then(response => {
const data = response.data;
const labelData1 = data.data[0] ? data.data[0] : [];
const labelData2 = data.data[1] ? data.data[1] : [];
const dataList1 = [];
const dataList2 = [];
data.labels.forEach(function(label, index) {
const value1 = labelData1[index] ? labelData1[index] : 0;
const value2 = labelData2[index] ? labelData2[index] : 0;
dataList1.push( { name: label, value0: value1 } );
dataList2.push( { name: label, value0: value2 } );
})
app.chartData1 = dataList1;
app.chartData2 = dataList2;
app.loading = false;
}
)
},
// 页面跳转
toTarget(url) {
this.$router.push( { path: url } );
},
// 去收银台
toCashier(url) {
const routeLink = this.$router.resolve({ path: url });
window.open(routeLink.href, '_blank');
}
},
};
</script>
<style scoped lang="scss">
2023-11-25 09:04:19 +08:00
.app-container{
height: 100%;
}
.top-box{
width: 100%;
display: flex;
align-items: center;
}
.top-sl{
width: 16%;
background: #FFFFFF;
border-radius: 8px;
background: #FFFFFF;
box-sizing: border-box;
padding: 15px;
}
.box-title{
font-size: 14px;
font-weight: 400;
color: rgba(0,0,0,0.6);
}
.box-size{
font-size: 28px;
font-weight: 400;
color: rgba(0,0,0,0.9);
margin-top: 5px;
margin-bottom: 15px;
}
.box-but{
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
color: rgba(0,0,0,0.6);
font-size: 14px;
}
.icon-lv{
width: 71px;
height: 24px;
background: #E3F9E9;
border-radius: 3px 3px 3px 3px;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
color: #2BA471;
}
2023-10-09 11:06:01 +08:00
.overview {
min-height: 270px;
background: #FFFFFF;
margin-bottom: 0px;
box-shadow: 0 1px 2px #d5d7d8;
.title {
margin: 10px 0px 0px 0px;
padding: 10px 0px 0px 10px;
height: 44px;
border: 1px solid #e2e1e1;
background: #f4f4f4;
color: #333;
font-weight: bold;
}
.content {
padding: 15px;
border: solid 1px #d5d7d8;
.item {
display: block;
border-right: none;
border-bottom: none;
min-height: 100px;
padding: 6px;
text-align: center;
cursor: pointer;
.do {
border: solid 1px #cccccc;
padding: 20px;
border-radius: 2px;
}
.icon {
height: 40px;
width: 40px;
display: block;
padding: 5px;
float: left;
border: solid #8a8a8a 1px;
border-radius: 30px;
}
.text {
text-align: left;
margin: 0px;
text-indent: 10px;
font-size: 14px;
}
.number {
text-align: left;
margin: 0px;
font-weight: bold;
text-indent: 10px;
font-size: 18px;
color: #ff5b57;
}
}
.home-tools {
.do {
height: 90px;
margin-bottom: 10px;
cursor: pointer;
font-weight: bold;
color: #666666;
border-radius: 2px;
text-align: left;
padding: 20px 0px 10px 20px;
float: left;
width: 100%;
background: #ffffff;
border: solid 1px #cccccc;
.text {
margin-top: 14px;
}
}
.t-icon {
width: 50px;
height: 50px;
float: left;
}
}
}
}
</style>
2023-11-25 09:04:19 +08:00