CET-vue-3.0/src/views/dashboard/Analysis/index.vue

174 lines
4.4 KiB
Vue
Raw Normal View History

2022-03-17 14:58:49 +08:00
<template>
2024-03-26 17:33:19 +08:00
<div style="background: #ececec; padding: 25px">
<a-card title="四六级总通过率查询" :bordered="false">
<template #extra>
<a-select v-model:value="college" style="width: 300px" :options="collegeOptions"></a-select>
<a-select v-model:value="entrydate" style="margin-left: 15px;width: 100px"
:options="entrydateOptions"></a-select>
</template>
<a-row :gutter="24">
<a-col :xl="12" :style="{ marginBottom: '24px' }">
<div class="container">
<div id="map1" style="width: 660px; height: 400px"></div>
</div>
</a-col>
<a-col :xl="12" :style="{ marginBottom: '24px' }">
<div class="container">
<div id="map2" style="width: 660px; height: 400px"></div>
</div>
</a-col>
</a-row>
</a-card>
2024-03-26 13:30:08 +08:00
</div>
2022-03-17 14:58:49 +08:00
</template>
2024-03-26 13:30:08 +08:00
<script>
2024-03-26 17:33:19 +08:00
import { defHttp } from '/@/utils/http/axios';
2024-03-26 13:30:08 +08:00
import * as echarts from 'echarts';
export default {
2024-03-26 17:33:19 +08:00
name: "Analysis",
data() {
return {
Url: {
getGradeAndCollegeData: '/cet/getGradeAndCollege',
},
collegeOptions: [],
entrydateOptions: [],
college: null,
entrydate: null
};
},
2024-03-26 13:30:08 +08:00
methods: {
map1Chart() {
// 基于准备好的dom初始化echarts实例 这个和上面的main对应
let myChart = echarts.init(document.getElementById("map1"));
// 指定图表的配置项和数据
let option = {
title: {
text: "总上座人数对比",
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
data: ["英国", "中国"],//上方的标签
},
xAxis: {
data: ["一级", "二级", "三级", "四级"],
axisLabel: {
interval: 0,
// rotate: 30
}
},
yAxis: {
name: '总上座人数(万)',
},
series: [
{
name: "英国",
type: "bar",
data: [1450, 1100, 450, 300],
label: {
formatter: '{@value}'
}
},
{
name: "中国",
type: "bar",
data: [552, 180, 200, 0],
label: {
formatter: '{@value}'
}
},
],
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
},
map2Chart() {
// 基于准备好的dom初始化echarts实例 这个和上面的main对应
let myChart = echarts.init(document.getElementById("map2"));
// 指定图表的配置项和数据
let option = {
title: {
text: "平均上座人数对比",
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
data: ["英国", "中国"],//上方的标签
},
xAxis: {
data: ["一级", "二级", "三级", "四级"],
axisLabel: {
interval: 0,
// rotate: 30
}
},
yAxis: {
name: '平均上座人数(千)',
},
series: [
{
name: "英国",
type: "bar",
data: [38, 21, 8, 5],
label: {
formatter: '{@value}'
}
},
{
name: "中国",
type: "bar",
data: [23, 7, 2, 0],
label: {
formatter: '{@value}'
}
},
],
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
},
2024-03-26 17:33:19 +08:00
// 获取年级和学院数据
async getGradeAndCollegeData() {
const data = await defHttp.get({ url: this.Url.getGradeAndCollegeData });
this.collegeOptions = data.colleges;
this.college= this.collegeOptions[0].value;
this.entrydateOptions = data.entrydates;
this.entrydate = this.entrydateOptions[0].value;
}
2024-03-26 13:30:08 +08:00
},
mounted() {
2024-03-26 17:33:19 +08:00
this.getGradeAndCollegeData();
2024-03-26 13:30:08 +08:00
this.map1Chart();
this.map2Chart();
}
}
2022-03-17 14:58:49 +08:00
</script>
2024-03-26 13:30:08 +08:00
<style lang="less" scoped>
.container {
display: flex;
background-color: #fff;
padding: 15px;
border-radius: 4px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09);
}
.title {
font-size: 34px;
color: rgb(8, 8, 8);
font-weight: bold;
}
</style>