From 171dc8f3f615cd9e1cdfd565673711ffc508c553 Mon Sep 17 00:00:00 2001 From: xbx <1827135378@qq.com> Date: Mon, 8 Apr 2024 16:41:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E5=8A=9F=E8=83=BD=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/cet/cet-ana-1.vue | 72 ++++++++++++++++++++------ src/views/cet/cet-ana-2.vue | 20 ++++++- src/views/dashboard/Analysis/index.vue | 31 +++++++++-- 3 files changed, 101 insertions(+), 22 deletions(-) diff --git a/src/views/cet/cet-ana-1.vue b/src/views/cet/cet-ana-1.vue index 3417f13..fb733b4 100644 --- a/src/views/cet/cet-ana-1.vue +++ b/src/views/cet/cet-ana-1.vue @@ -3,8 +3,10 @@ @@ -28,6 +30,7 @@ export default { return { Url: { getBatch: '/cet/getBatch', + getEntrydate: '/cet/getEntrydate', getCollege: '/cet/getCollege', getRate: '/cet/getRateByBatch' }, @@ -40,7 +43,10 @@ export default { ], level: null, college: null, - batch: null + batch: null, + entrydateOptions: [], + entrydate: null, + }; }, methods: { @@ -56,9 +62,9 @@ export default { let xData = []; let yData = []; for (let key in data) { - xData.push(key); + xData.push(data[key].college); // 将数据转换为百分比(加上%) - yData.push((data[key] * 100).toFixed(2)); + yData.push(data[key].passRate); } let myChart = echarts.init(document.getElementById("map1")); // 指定图表的配置项和数据 @@ -72,6 +78,15 @@ export default { type: 'shadow' } }, + toolbox: { + show: true, + feature: { + dataView: { show: true, readOnly: false }, + magicType: { show: true, type: ['line', 'bar'] }, + restore: { show: true }, + saveAsImage: { show: true } + } + }, grid: { left: '3%', right: '4%', @@ -82,8 +97,9 @@ export default { { type: 'category', data: xData, - axisTick: { - alignWithLabel: true + axisLabel: { + interval: 1,//代表显示所有x轴标签显示 + rotate: -20,//代表倾斜30度显示 } } ], @@ -94,10 +110,22 @@ export default { ], series: [ { - name: 'Direct', + name: '累计总通过率', type: 'bar', barWidth: '60%', - data: yData + data: yData, + itemStyle: { + normal: { + label: { + show: true, //开启显示 + position: 'top', //在上方显示 + textStyle: { //数值样式 + color: 'black', + fontSize: 13 + } + } + } + } } ] }; @@ -111,36 +139,48 @@ export default { this.batch = this.batchOptions[0].value; this.level = this.levelOptions[0].value; }, + //获取年级数据 + async getEntrydate() { + const getEntrydate = await defHttp.get({ url: this.Url.getEntrydate }); + this.entrydateOptions = getEntrydate.entrydates; + this.entrydate = this.entrydateOptions[0].value; + }, // 查询数据 async query() { - let data = null; - console.log(this.college, this.batch); + let result = null; + console.log(this.college, this.entrydate); //如果this.college和this.batch为null则先赋静态值 if (!this.college) { this.college = '全校'; } - if (!this.batch) { - this.batch = '2017-12-01'; + if (!this.entrydate) { + this.entrydate = '2017'; } try { this.loading = true; let params = { college: this.college, - batch: this.batch, + entrydate: this.entrydate, level: 'cet4' } - data = await defHttp.get({ url: this.Url.getRate, params }); + result = await defHttp.get({ url: this.Url.getRate, params }); + //使数据按照passRate从大到小排序 + result.data.sort((a, b) => { + return b.passRate - a.passRate; + }); + console.log("data",result.data); } finally { this.loading = false; this.$nextTick(() => { - this.dataChart(data); + this.dataChart(result.data); }) } } }, mounted() { this.getCollegeOptions(); - this.getBatch(); + // this.getBatch(); + this.getEntrydate(); this.query(); } diff --git a/src/views/cet/cet-ana-2.vue b/src/views/cet/cet-ana-2.vue index 592d866..19e064a 100644 --- a/src/views/cet/cet-ana-2.vue +++ b/src/views/cet/cet-ana-2.vue @@ -65,6 +65,10 @@ export default { xAxis: { type: 'category', data: xData, + axisLabel: { + interval:0,//代表显示所有x轴标签显示 + rotate:-20,//代表倾斜30度显示 + } }, tooltip: { trigger: 'axis', @@ -78,7 +82,19 @@ export default { series: [ { data: yData, - type: 'line' + type: 'line', + itemStyle: { + normal: { + label: { + show: true, //开启显示 + position: 'top', //在上方显示 + textStyle: { //数值样式 + color: 'black', + fontSize: 12 + } + } + } + } } ] }; @@ -120,7 +136,7 @@ export default { async query() { let data = null; try { - console.log("sb",this.collegeMajor); + console.log("sb", this.collegeMajor); //如果this.collegeMajor为null则先赋个值 if (!this.collegeMajor) { this.collegeMajor = ['东语学院']; diff --git a/src/views/dashboard/Analysis/index.vue b/src/views/dashboard/Analysis/index.vue index a222186..0f9433b 100644 --- a/src/views/dashboard/Analysis/index.vue +++ b/src/views/dashboard/Analysis/index.vue @@ -6,11 +6,18 @@ 查询 + - +
- + + 学院 / 专业总人数: {{ total }} @@ -37,21 +44,32 @@ export default { title: '年级', dataIndex: 'grade', key: 'grade', + align: 'center', }, { - title: '两个批次总参加人数', + title: '考试批次', + dataIndex: 'batch', + key: 'batch', + align: 'center', + //数据显示上下两行 + }, + { + title: '总参加人数', dataIndex: 'attendNumber', key: 'attendNumber', + align: 'center', }, { title: '新通过人数', dataIndex: 'passNumber', key: 'passNumber', + align: 'center', }, { - title: '累计总通过率', + slots: { title: 'passRateSlot' }, dataIndex: 'passRate', key: 'passRate', + align: 'center', } ], Url: { @@ -97,6 +115,8 @@ export default { }) } }); + //手动添加一个专升本字段 + this.collegeMajorOptions.unshift({ value: '专升本', label: '专升本' }); // 手动添加一个全校字段 this.collegeMajorOptions.unshift({ value: '全校', label: '全校' }); this.collegeMajor = ['全校']; @@ -123,6 +143,9 @@ export default { this.loading = false; } }, + test() { + defHttp.get({ url: "/cet/getTest" }); + } }, mounted() { this.getEntrydateAndCollegeData();