From d0d825e09ffdb95e9c4edcc44eeff08c4b2a9c23 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期四, 07 十一月 2024 15:53:22 +0800
Subject: [PATCH] 完成教师端,考试列表展示
---
src/views/dashboard/index.vue | 342 +++++++++++++++++++++++++++-----------------------------
src/api/exam.js | 5
2 files changed, 169 insertions(+), 178 deletions(-)
diff --git a/src/api/exam.js b/src/api/exam.js
index f5a9dbf..c626428 100644
--- a/src/api/exam.js
+++ b/src/api/exam.js
@@ -10,10 +10,11 @@
}
// 鑾峰彇鑰冭瘯鍒楄〃
-export const getExamList = () => {
+export const getExamList = (params) => {
return axios({
url: '/api/admin/exam/list',
- method: 'GET'
+ method: 'GET',
+ params: params
})
}
diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue
index 18759fa..5428283 100644
--- a/src/views/dashboard/index.vue
+++ b/src/views/dashboard/index.vue
@@ -3,54 +3,26 @@
<el-row :gutter="40" class="panel-group">
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
<div class="card-panel">
- <div class="card-panel-icon-wrapper icon-people">
- <svg-icon icon-class="exam" class-name="card-panel-icon"/>
- </div>
- <div class="card-panel-description">
- <div class="card-panel-text">
- 璇曞嵎鎬绘暟
+ <el-row class="panel-group">
+ <div class="card-panel-icon-wrapper icon-people">
+ <svg-icon icon-class="list" class-name="card-panel-icon"/>
</div>
- <count-to :start-val="0" :end-val="examPaperCount" :duration="2600" class="card-panel-num" v-loading="loading"/>
- </div>
- </div>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
- <div class="card-panel" >
- <div class="card-panel-icon-wrapper icon-message">
- <svg-icon icon-class="question" class-name="card-panel-icon"/>
- </div>
- <div class="card-panel-description">
- <div class="card-panel-text">
- 棰樼洰鎬绘暟
+ <div class="card-panel-description">
+ <div class="card-panel-text">
+ <p>鑰冭瘯鍒楄〃</p>
+ </div>
</div>
- <count-to :start-val="0" :end-val="questionCount" :duration="3000" class="card-panel-num" v-loading="loading"/>
- </div>
- </div>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
- <div class="card-panel">
- <div class="card-panel-icon-wrapper icon-shopping">
- <svg-icon icon-class="doexampaper" class-name="card-panel-icon"/>
- </div>
- <div class="card-panel-description">
- <div class="card-panel-text">
- 绛斿嵎鎬绘暟
- </div>
- <count-to :start-val="0" :end-val="doExamPaperCount" :duration="3600" class="card-panel-num" v-loading="loading"/>
- </div>
- </div>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
- <div class="card-panel">
- <div class="card-panel-icon-wrapper icon-money">
- <svg-icon icon-class="doquestion" class-name="card-panel-icon"/>
- </div>
- <div class="card-panel-description">
- <div class="card-panel-text">
- 绛旈鎬绘暟
- </div>
- <count-to :start-val="0" :end-val="doQuestionCount" :duration="3200" class="card-panel-num" v-loading="loading"/>
- </div>
+ </el-row>
+ <el-row class="panel-group">
+ <el-input v-model="query.examName" placeholder="璇疯緭鍏ヨ�冭瘯鍚嶇О" style="width: 70%;margin-bottom: 10px;margin-left: 10px;" size="small" @input="getExamList"/>
+ <el-button type="primary" size="small" @click="getExamList">鏌ヨ</el-button>
+ </el-row>
+ <el-row class="panel-group">
+ <el-table :data="examList" style="width: 100%;" height="430">
+ <el-table-column label="鑰冭瘯鍚嶇О" prop="examName"></el-table-column>
+ <el-table-column label="鑰冭瘯鐘舵��" prop="status"></el-table-column>
+ </el-table>
+ </el-row>
</div>
</el-col>
</el-row>
@@ -67,6 +39,8 @@
import resize from './components/mixins/resize'
import CountTo from 'vue-count-to'
import dashboardApi from '@/api/dashboard'
+import {getExamList} from "@/api/exam";
+import exam from "@/store/modules/exam";
export default {
mixins: [resize],
components: {
@@ -74,6 +48,12 @@
},
data () {
return {
+ // 鑰冭瘯鍒楄〃
+ examList: [],
+ // 鑰冭瘯鏌ヨ鏉′欢
+ query:{
+ examName: '',
+ },
examPaperCount: 0,
questionCount: 0,
doExamPaperCount: 0,
@@ -102,6 +82,13 @@
})
},
methods: {
+ getExamList() {
+ let _this = this
+ getExamList(this.query).then(res => {
+ let response = res.data
+ _this.examList = response.data
+ })
+ },
option (title, formatter, label, vaule) {
return {
title: {
@@ -132,166 +119,169 @@
}]
}
}
+ },
+ created() {
+ this.getExamList()
}
}
</script>
<style lang="scss" scoped>
- .dashboard-container {
- padding: 32px;
- background-color: rgb(240, 242, 245);
+.dashboard-container {
+ padding: 32px;
+ background-color: rgb(240, 242, 245);
+ position: relative;
+
+ .chart-wrapper {
+ background: #fff;
+ padding: 16px 16px 0;
+ margin-bottom: 32px;
+ }
+}
+
+@media (max-width: 1024px) {
+ .chart-wrapper {
+ padding: 8px;
+ }
+}
+
+.dashboard-editor-container {
+ padding: 32px;
+ background-color: rgb(240, 242, 245);
+ position: relative;
+
+ .github-corner {
+ position: absolute;
+ top: 0px;
+ border: 0;
+ right: 0;
+ }
+
+ .chart-wrapper {
+ background: #fff;
+ padding: 16px 16px 0;
+ margin-bottom: 32px;
+ }
+}
+
+@media (max-width: 1024px) {
+ .chart-wrapper {
+ padding: 8px;
+ }
+}
+
+.panel-group {
+ margin-top: 8px;
+
+ .card-panel-col {
+ margin-bottom: 32px;
+ }
+
+ .card-panel {
+ height: 600px;
+ cursor: pointer;
+ font-size: 12px;
position: relative;
+ overflow: hidden;
+ color: #666;
+ background: #fff;
+ box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
+ border-color: rgba(0, 0, 0, .05);
- .chart-wrapper {
- background: #fff;
- padding: 16px 16px 0;
- margin-bottom: 32px;
- }
- }
-
- @media (max-width: 1024px) {
- .chart-wrapper {
- padding: 8px;
- }
- }
-
- .dashboard-editor-container {
- padding: 32px;
- background-color: rgb(240, 242, 245);
- position: relative;
-
- .github-corner {
- position: absolute;
- top: 0px;
- border: 0;
- right: 0;
- }
-
- .chart-wrapper {
- background: #fff;
- padding: 16px 16px 0;
- margin-bottom: 32px;
- }
- }
-
- @media (max-width: 1024px) {
- .chart-wrapper {
- padding: 8px;
- }
- }
-
- .panel-group {
- margin-top: 18px;
-
- .card-panel-col {
- margin-bottom: 32px;
- }
-
- .card-panel {
- height: 108px;
- cursor: pointer;
- font-size: 12px;
- position: relative;
- overflow: hidden;
- color: #666;
- background: #fff;
- box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
- border-color: rgba(0, 0, 0, .05);
-
- &:hover {
- .card-panel-icon-wrapper {
- color: #fff;
- }
-
- .icon-people {
- background: #40c9c6;
- }
-
- .icon-message {
- background: #36a3f7;
- }
-
- .icon-money {
- background: #f4516c;
- }
-
- .icon-shopping {
- background: #34bfa3
- }
+ &:hover {
+ .card-panel-icon-wrapper {
+ color: #fff;
}
.icon-people {
- color: #40c9c6;
+ background: #40c9c6;
}
.icon-message {
- color: #36a3f7;
+ background: #36a3f7;
}
.icon-money {
- color: #f4516c;
+ background: #f4516c;
}
.icon-shopping {
- color: #34bfa3
- }
-
- .card-panel-icon-wrapper {
- float: left;
- margin: 14px 0 0 14px;
- padding: 16px;
- transition: all 0.38s ease-out;
- border-radius: 6px;
- }
-
- .card-panel-icon {
- float: left;
- font-size: 48px;
- }
-
- .card-panel-description {
- float: right;
- font-weight: bold;
- margin: 26px;
- margin-left: 0px;
-
- .card-panel-text {
- line-height: 18px;
- color: rgba(0, 0, 0, 0.45);
- font-size: 16px;
- margin-bottom: 12px;
- }
-
- .card-panel-num {
- font-size: 20px;
- }
+ background: #34bfa3
}
}
- }
- @media (max-width: 550px) {
- .card-panel-description {
- display: none;
+ .icon-people {
+ color: #40c9c6;
+ }
+
+ .icon-message {
+ color: #36a3f7;
+ }
+
+ .icon-money {
+ color: #f4516c;
+ }
+
+ .icon-shopping {
+ color: #34bfa3
}
.card-panel-icon-wrapper {
- float: none !important;
- width: 100%;
- height: 100%;
- margin: 0 !important;
+ float: left;
+ margin: 14px 0 0 14px;
+ padding: 16px;
+ transition: all 0.38s ease-out;
+ border-radius: 6px;
+ }
- .svg-icon {
- display: block;
- margin: 14px auto !important;
- float: none !important;
+ .card-panel-icon {
+ float: left;
+ font-size: 48px;
+ }
+
+ .card-panel-description {
+ float: right;
+ font-weight: bold;
+ margin: 26px;
+ margin-left: 0px;
+
+ .card-panel-text {
+ line-height: 18px;
+ color: rgba(0, 0, 0, 0.45);
+ font-size: 16px;
+ margin-bottom: 12px;
+ }
+
+ .card-panel-num {
+ font-size: 20px;
}
}
}
+}
- .echarts-line{
- background:#fff;
- padding:16px 16px 0;
- margin-bottom:32px;
+@media (max-width: 550px) {
+ .card-panel-description {
+ display: none;
}
+
+ .card-panel-icon-wrapper {
+ float: none !important;
+ width: 100%;
+ height: 100%;
+ margin: 0 !important;
+
+ .svg-icon {
+ display: block;
+ margin: 14px auto !important;
+ float: none !important;
+ }
+ }
+}
+
+.echarts-line{
+ background:#fff;
+ padding:16px 16px 0;
+ margin-bottom:32px;
+}
</style>
--
Gitblit v1.8.0