From 48989b78e9d4ecab178fb0ba00117cda8029919c Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 24 五月 2024 16:03:15 +0800 Subject: [PATCH] 样式修改 --- src/views/answer/sheetStatistics.vue | 193 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 133 insertions(+), 60 deletions(-) diff --git a/src/views/answer/sheetStatistics.vue b/src/views/answer/sheetStatistics.vue index 3ceb157..5bdaec8 100644 --- a/src/views/answer/sheetStatistics.vue +++ b/src/views/answer/sheetStatistics.vue @@ -14,8 +14,89 @@ <el-form-item> <el-button type="primary" @click="submitForm">鏌ヨ</el-button> </el-form-item> - </el-form> + + <el-row :gutter="20"> + <el-col :xl="24" class="echarts-row"> + <el-row :gutter="20"> + <el-col :span="6"> + <el-card> + <div class="data-item"> + <div class="data-icon" :style="{ 'background-color': iconList[0].color }"> + <i class="el-icon-tickets"></i> + </div> + <div class="data-info"> + <div class="data-label"> + 鎬昏�冭瘯娆℃暟 + </div> + <div class="data-num"> + {{ totalInfo.examTotal }} + </div> + </div> + </div> + </el-card> + + </el-col> + + <el-col :span="6"> + <el-card> + <div class="data-item"> + <div class="data-icon" :style="{ 'background-color': iconList[1].color }"> + <i class="el-icon-s-claim"></i> + </div> + <div class="data-info"> + <div class="data-label"> + 鍙傝�冧汉鏁� + </div> + <div class="data-num"> + {{ totalInfo.factPeopleTotal }} + </div> + </div> + </div> + </el-card> + + </el-col> + + <el-col :span="6"> + <el-card> + <div class="data-item"> + <div class="data-icon" :style="{ 'background-color': iconList[2].color }"> + <i class="el-icon-edit"></i> + </div> + <div class="data-info"> + <div class="data-label"> + 骞冲潎鍒� + </div> + <div class="data-num"> + {{ totalInfo.averageScore }} + </div> + </div> + </div> + </el-card> + + </el-col> + + <el-col :span="6"> + <el-card> + <div class="data-item"> + <div class="data-icon" :style="{ 'background-color': iconList[3].color }"> + <i class="el-icon-s-data"></i> + </div> + <div class="data-info"> + <div class="data-label"> + 鍙傝�冧汉鏁扮櫨鍒嗘瘮 + </div> + <div class="data-num"> + {{ totalInfo.referencePercentage }}% + </div> + </div> + </div> + </el-card> + </el-col> + </el-row> + </el-col> + </el-row> + <el-row :gutter="20"> <el-col :xl="12" class="echarts-row"> <el-card> @@ -29,16 +110,6 @@ <el-card> <div class="card-chart-container"> <div id="scoreChart" ref="scoreChart" class="chart-style" v-loading="chartLoading2" /> - </div> - </el-card> - </el-col> - </el-row> - - <el-row :gutter="20"> - <el-col :xl="24"> - <el-card> - <div class="card-chart-container"> - <div id="peopleChart" ref="peopleChart" class="chart-style" v-loading="chartLoading3" /> </div> </el-card> </el-col> @@ -70,6 +141,13 @@ 'totalAttended': '鍙備笌鑰冭瘯', 'totalAbsent': '鏈弬涓庤�冭瘯' }; + +const dataKeyMap = { + 'factPeopleTotal': '鍙傝�冧汉鏁�', + 'averageScore': '骞冲潎鍒�', + 'referencePercentage': '鍙傝�冧汉鏁扮櫨鍒嗘瘮', +}; + let ageChart = null; let scroeChart = null; let peopleChart = null; @@ -77,10 +155,22 @@ export default { data() { return { + totalInfo: { + examTotal: 0, + factPeopleTotal: 0, + averageScore: 0, + referencePercentage: 0 + }, + iconList: [ + { icon: 'el-icon-tickets', color: '#7868d9' }, + { icon: 'el-icon-s-claim', color: '#3eba45' }, + { icon: 'el-icon-edit', color: '#3da7f8' }, + { icon: 'el-icon-warning', color: '#ffbe40' }, + { icon: 'el-icon-error', color: '#fe640d' }, + ], examPaperList: [], chartLoading1: false, chartLoading2: false, - chartLoading3: false, queryParam: { examPaperId: '', departmentId: [] @@ -94,7 +184,6 @@ } ageChart = echarts.init(this.$refs.ageChart); scroeChart = echarts.init(this.$refs.scoreChart); - peopleChart = echarts.init(this.$refs.peopleChart); dashboardApi.examPaperList().then(res => { this.examPaperList = res.response; this.queryParam.examPaperId = this.examPaperList[0].id @@ -106,21 +195,17 @@ getChartData() { this.chartLoading1 = true; this.chartLoading2 = true; - this.chartLoading3 = true; dashboardApi.getData(this.queryParam).then(re => { - const { age, score, examPeopleNum } = re.response; - + const { age, score, total } = re.response; + this.totalInfo = total; const ageOption = this.barOption('骞撮緞娈电粺璁�', age, ageLabel); const scoreOption = this.barOption('鍒嗘暟娈电粺璁�', score, scoreLabel); - const peopleOption = this.pieOption('鑰冭瘯浜烘暟', examPeopleNum, pieLabel); ageChart.setOption(ageOption, true); scroeChart.setOption(scoreOption, true); - peopleChart.setOption(peopleOption, true); this.chartLoading1 = false; this.chartLoading2 = false; - this.chartLoading3 = false; }); }, barOption(title, data, labelList) { @@ -164,43 +249,6 @@ }; }, - pieOption(title, data, labelList) { - const pieData = data.map(item => { - return { - name: labelList[Object.keys(item)[0]], - value: Object.values(item)[0] - }; - }); - return { - title: { - text: title, - x: 'left' - }, - color: ['#E74C3C', '#3498DB', '#F1C40F', '#95A5A6', '#8E44AD', '#F39C12', '#D35400'], - tooltip: { - trigger: 'item' - }, - legend: { - orient: 'horizontal', - }, - series: [ - { - type: 'pie', - radius: '50%', - data: pieData, - emphasis: { - itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' - } - } - } - ] - - }; - - }, submitForm() { this.getChartData(); }, @@ -221,9 +269,6 @@ } if (scroeChart) { scroeChart.resize(); - } - if (peopleChart) { - peopleChart.resize(); } } }, @@ -249,9 +294,37 @@ height: 400px; } - .chart-style { width: 100%; height: 100%; } + +.data-item { + width: 100%; + display: flex; + align-items: center; + border-radius: 10px; + overflow: hidden; + + .data-icon { + font-size: 70px; + padding: 20px 30px; + color: #fff; + border-radius: 10px; + overflow: hidden; + margin-right: 20px; + } + + .data-info { + .data-label { + font-size: 18px; + margin-bottom: 10px; + color: #707070; + } + + .data-num { + font-size: 28px; + } + } +} </style> -- Gitblit v1.8.0