Procházet zdrojové kódy

record下载数据,与学情报告班级平均分

yuanyiming před 1 rokem
rodič
revize
c1408422c1

+ 0 - 38
src/components/pages/kindStudentEva/info/index.vue

@@ -131,49 +131,11 @@ export default {
   },
   methods: {
     upStu() {
-      // console.log("qqqqqq", this.num);
       this.num = this.num * 1 - 1;
-      // this.$router.replace(
-      //   `/kindStudentEva?userid=${this.teaId}&oid=${this.oid}&org=${
-      //     this.org
-      //   }&suid=${this.stuList[this.num]}&cid=${this.cid}&role=${this.role}`
-      // );
-      // this.$router.replace({
-      //   path: this.$route.path, // 当前页面的路径
-      //   // params: currentParams, // 重新传递之前的参数
-      //   query: {
-      //     userid: this.teaId,
-      //     oid: this.oid,
-      //     org: this.org,
-      //     suid: this.stuList[this.num],
-      //     cid: this.cid,
-      //     role: this.role
-      //   }
-      // });
       this.$emit("updateUid", this.stuList[this.num]);
     },
     nextStu() {
-      // console.log("this.userid", this.teaId);
-      // console.log("this.oid", this.oid);
-      // console.log("this.org", this.org);
-      // console.log("this.cid", this.cid);
-      // console.log("this.role", this.role);
-      // console.log("this.suid", this.stuList[this.num]);
-
       this.num = this.num * 1 + 1;
-      // this.$router.push({ params: { suid: this.stuList[this.num] } });
-      // this.$router.replace({
-      //   path: this.$route.path, // 当前页面的路径
-      //   // params: currentParams, // 重新传递之前的参数
-      //   query: {
-      //     userid: this.teaId,
-      //     oid: this.oid,
-      //     org: this.org,
-      //     suid: this.stuList[this.num],
-      //     cid: this.cid,
-      //     role: this.role
-      //   }
-      // });
       this.$emit("updateUid", this.stuList[this.num]);
     },
     handleCommand(e) {

+ 1 - 1
src/components/pages/kindStudentEva/panel/index.vue

@@ -100,7 +100,7 @@ export default {
       this.ajax
         .get(this.$store.state.api + "selectSRecordY", params)
         .then(res => {
-          console.log("总学习记录数量", res);
+          // console.log("总学习记录数量", res);
           this.count = res.data[0].length; //总学习记录数量
           var data = res.data[0]; //总学习记录
           var ftype = res.data[1]; //公共父级分类

+ 28 - 11
src/components/pages/kindStudentEva/test/component/croColumnar.vue

@@ -17,9 +17,15 @@ export default {
       required: true
     }
   },
+  data() {
+    return {
+      bLeg: ["我的", "班级平均"]
+    };
+  },
   mounted() {
     this.renderChart();
-    var _this = this;
+    // console.log("x", this.chartData, this.categories);
+    // var _this = this;
     // window.addEventListener("resize", () => {
     //     _this.renderChart();
     // //  this.$forceUpdate();
@@ -31,11 +37,16 @@ export default {
       const chart = this.$echarts.init(chartContainer);
 
       const options = {
-        title: {
-          text: '平均分' // 设置标题
-        },
+        // title: {
+        //   text: "平均分" // 设置标题
+        // },
         tooltip: {},
-        color: ['#5CBDF3'], // 设置柱状图的颜色
+        legend: {
+          data: this.bLeg,
+          top: 0, // 将图例显示在底部
+          icon: 'circle' // 修改图例项的形状为圆形
+        },
+        // color: ["#FD9588",'#F5B763'], // 设置柱状图的颜色
         xAxis: {
           type: "category",
           data: this.categories
@@ -44,12 +55,18 @@ export default {
           type: "value",
           max: "5"
         },
-        series: [
-          {
-            data: this.chartData,
-            type: "bar"
-          }
-        ]
+        series: this.bLeg.map((legendItem, index) => ({
+          name: legendItem,
+          data: this.chartData[index],
+          type: "bar"
+          // barCategoryGap: "30%"
+        }))
+        // series: [
+        //   {
+        //     data: this.chartData,
+        //     type: "bar"
+        //   }
+        // ]
       };
 
       chart.setOption(options);

+ 58 - 8
src/components/pages/kindStudentEva/test/component/fieldMap.vue

@@ -1,9 +1,7 @@
 <template>
   <!-- 健康的 -->
   <div>
-    <div
-      style="background-color: #fff;width: 100%;height: 100%;"
-    >
+    <div style="background-color: #fff;width: 100%;height: 100%;">
       <div style="margin: 20px 10px;">{{ tit }}领域综合表现</div>
       <div class="content">
         <div
@@ -50,7 +48,7 @@
     </div>
 
     <el-dialog
-      :title="tit+'记录'"
+      :title="tit + '记录'"
       :visible.sync="dialogVisible"
       :before-close="handleClose"
       center
@@ -70,6 +68,7 @@
 import croColumnar from "./croColumnar";
 import verColumnar from "./verColumnar";
 import popTable from "./popTable";
+// import { number } from "echarts";
 export default {
   components: {
     croColumnar,
@@ -89,6 +88,14 @@ export default {
       type: Object,
       default: () => {}
     },
+    classScoreData: {
+      type: Array,
+      default: () => []
+    },
+    claStuNum: {
+      type: Number,
+      default: 0
+    },
     userid: {
       type: String,
       default: ""
@@ -133,12 +140,11 @@ export default {
       this.dialogVisible = true;
     },
     // proofBtn() {
-      
+
     // },
     handleClose() {
       this.dialogVisible = false;
       this.proofIsShow = false;
-
     },
     // 获取关键证据数据
     getEvidence() {
@@ -159,6 +165,9 @@ export default {
     },
     // 横向柱状图
     CroMap() {
+      // console.log(this.classScoreData);
+      // console.log(this.tid);
+
       this.bomCategories = [];
       let raData = this.radarData;
       let healthData = raData[this.tid];
@@ -173,10 +182,50 @@ export default {
       // console.log("croMapData", croMapData);
 
       this.croData = this.combineArrays(croMapData);
-      // console.log("newArr",newArr);
+      // console.log("this.croData",this.croData);
     },
     // 纵向柱状图
     verMap() {
+      // 班级平均数据开始
+      let newArr = [];
+      this.classScoreData.forEach(e => {
+        for (let i in e) {
+          if (i == this.tid) {
+            newArr.push(e[i]);
+          }
+        }
+      });
+      // console.log(newArr);
+      // 整合学生小分类数据
+      let AvaArr = [];
+      newArr.forEach(e => {
+        AvaArr.push(e.child);
+      });
+
+      let AvaArr2 = [];
+      AvaArr2 = this.combineArrays(AvaArr);
+      let _that = this;
+
+      let att = [];
+      AvaArr2.forEach((e, index) => {
+        att[index] = [];
+        e.forEach(k => {
+          att[index] = _that.addArrays(att[index], k);
+        });
+      });
+      // console.log("AvaArr", AvaArr);
+
+      let lastData = [];
+      att.forEach((e, index) => {
+        let k = 0;
+        k = e.reduce((per, cur) => {
+          return per + cur;
+        }, 0);
+        lastData.push(((k / 3 / this.claStuNum) * 1).toFixed(1));
+      });
+      // console.log("lastData", lastData);
+      // 班级平均数据结束
+
       let raData = this.radarData;
       let healthData = raData[this.tid];
       let croMapData = [];
@@ -196,7 +245,8 @@ export default {
       this.verData = app.map(e => {
         return (e / 3).toFixed(1);
       });
-      //   console.log("this.verData", this.verData);
+      this.verData = [this.verData, lastData];
+      // console.log("this.verData", this.verData);
       // this.healthCroData = this.combineArrays(croMapData);
     },
     // 数据相同下标相加组成一个新数组

+ 5 - 5
src/components/pages/kindStudentEva/test/component/popbox.vue

@@ -276,12 +276,12 @@ export default {
         }
       ];
 
-      console.log("添加新纪录", params);
+      // console.log("添加新纪录", params);
 
       this.ajax
         .post(this.$store.state.api + "insertRecord", params)
         .then(res => {
-          console.log(res);
+          // console.log(res);
           this.$emit('updatePanelB',Date.parse(new Date()))
           this.$emit("closePop");
           this.$emit("getData");
@@ -349,7 +349,7 @@ export default {
       this.ajax
         .post(this.$store.state.api + "updateRecordData", params)
         .then(res => {
-          console.log(res);
+          // console.log(res);
          
           this.$emit("closePop");
           this.$emit("getData");
@@ -476,8 +476,8 @@ export default {
                 _this.recordData.recordImg.push(data.Location);
                 _this.$forceUpdate();
 
-                console.log(_this.checkJson);
-                console.log(data.Location);
+                // console.log(_this.checkJson);
+                // console.log(data.Location);
               }
             });
         }

+ 2 - 2
src/components/pages/kindStudentEva/test/component/radar.vue

@@ -33,8 +33,8 @@ export default {
     // console.log('this.categories',this.categories);
     this.renderChart();
     this.$forceUpdate();
-
-    var _this = this;
+    // console.log('chartData111111111111',this.chartData);
+    // var _this = this;
     // window.addEventListener("resize", () => {
     //   _this.renderChart();
     // //  this.$forceUpdate();

+ 4 - 2
src/components/pages/kindStudentEva/test/component/verColumnar.vue

@@ -24,7 +24,9 @@ export default {
   },
   mounted() {
     this.initializeChart();
-    var _this = this;
+    // console.log('y', this.verChartData, this.verCategories);
+
+    // var _this = this;
     // window.addEventListener("resize", () => {
     //     _this.renderChart();
     // //    this.$forceUpdate();
@@ -55,7 +57,7 @@ export default {
           name: legendItem,
           data: this.verChartData[index],
           type: "bar",
-          barCategoryGap: "30%"
+          // barCategoryGap: "30%"
         }))
 
         // [

+ 3 - 3
src/components/pages/kindStudentEva/test/diary.vue

@@ -411,7 +411,7 @@ export default {
           this.isLoading = false;
           this.tableData = res.data[0];
           this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
-          console.log(" 获取筛选数据", res.data[0]);
+          // console.log(" 获取筛选数据", res.data[0]);
         })
         .catch(err => {
           this.isLoading = false;
@@ -485,7 +485,7 @@ export default {
       let minutes = currentTime.getMinutes();
       minutes = (minutes < 10 ? "0" : "") + minutes;
 
-      console.log(year, month, day, hours, minutes);
+      // console.log(year, month, day, hours, minutes);
       this.visitTime = `${year}-${month}-${day} ${hours}:${minutes}`;
       // console.log(this.visitTime)
     },
@@ -612,7 +612,7 @@ export default {
     exportExcel() {
       // var res = res.data[0];
       var res = this.multipleSelection;
-      console.log("this.termList", this.termList);
+      // console.log("this.termList", this.termList);
       let termName = "";
       this.termList.forEach(e => {
         if (e.id == this.termId) {

+ 142 - 29
src/components/pages/kindStudentEva/test/report.vue

@@ -5,7 +5,7 @@
         <div style="width: 348px;height: 40px;flex-shrink: 0;" v-if="!isPdf">
           <el-select
             v-model="year"
-            @change="getData"
+            @change="getClassAva"
             style="width: 100%;"
             placeholder="请选择"
           >
@@ -76,6 +76,8 @@
             :tid="i.id"
             :tit="i.name"
             :userid="userid"
+            :classScoreData="classScoreData"
+            :claStuNum="claStuNum"
             :isPdf="isPdf"
             :year="year"
             :radarData="radarData"
@@ -125,6 +127,12 @@ export default {
       // 学期数组
       termList: [],
 
+      // 单个班级学生人数
+      claStuNum: 0,
+      // 班级分数数据
+      classScoreData: [],
+      classAvaScoreData: [],
+
       info: {},
       classJuri: [],
       termName: "",
@@ -223,9 +231,10 @@ export default {
           });
           // 数据分类底部标签
           this.categories = aaa;
-
-          // 雷达图数据
+          console.log(1111);
+          // 处理数据数据
           this.countRadar();
+          console.log(222);
 
           // 柱状图
           this.countCro();
@@ -255,7 +264,7 @@ export default {
             }
           }
           this.termList = yearJuri;
-          this.getData();
+          this.getClassAva();
 
           this.getEvidence();
         })
@@ -281,6 +290,34 @@ export default {
           this.healthEvidence = res.data[0];
         }); //
     },
+
+    // 获取班级平均
+    getClassAva() {
+      this.claStuNum= 0,
+      // 班级分数数据
+      this.classScoreData= []
+      this.classScoreData = []; //数据
+      let params = {
+        cid: this.cid,
+        trm: this.year
+      };
+      // console.log("params", params);
+      this.ajax
+        .get(this.$store.state.api + "selectClaAvaScore", params)
+        .then(res => {
+          this.claStuNum = res.data[0].length > 0 ? res.data[0][0].num : 0;
+          let AvaData = res.data[0];
+          AvaData.forEach((item, index) => {
+            this.classScoreData.push(JSON.parse(item.json));
+          });
+          console.log('this.classScoreData',JSON.parse(JSON.stringify(this.classScoreData)) );
+          // 第一次渲染,要放在这里,不然没有办法循环班级平均数
+          this.getData();
+
+          // console.log("班级平均数据1", this.classScoreData);
+        });
+    },
+
     // 获取打分数据
     getData() {
       // this.isLoading = true;
@@ -345,12 +382,13 @@ export default {
     //   this.radarData = {};
     // },
 
-    // 雷达图数据
     countRadar() {
-      // console.log("数据?", this.radarData);
+      // 分数数据并进行处理
+      // 个人平均分数据开始
       let raData = this.radarData;
 
-      // 将数据复制在大分类里面用child来存储
+      // 分数与分类是两个数组
+      // 将分数数据复制在大分类里面用child来存储
       this.VeidooList.forEach(e => {
         // console.log(e);
         let fid = e.id;
@@ -367,37 +405,101 @@ export default {
       });
 
       // 第三次提取,将每个小分类的数据进行相加再除以小分类的长度得到平均值,再将平均值存储在大分类的num中
-      let a = 0;
-      let b = 0;
-      let c = 0;
+
       this.VeidooList.forEach((e, k) => {
-        e.num = [];
+        let stockpile = [];
         e.child2.forEach((i, index) => {
-          a = a + i[0];
-          b = b + i[1];
-          c = c + i[2];
+          stockpile = this.addArrays(stockpile, i);
         });
-        a = (a / e.child2.length).toFixed(1);
-        b = (b / e.child2.length).toFixed(1);
-        c = (c / e.child2.length).toFixed(1);
-
-        // 综合的柱状图,使用的是雷达图的数据再加工的数据。
-        //toFixed会把数字转换成字符串,所以要转换成数字,不然柱状没法用
-        e.num.push(a * 1, b * 1, c * 1);
-        a = 0;
-        b = 0;
-        c = 0;
+
+        e.num = stockpile.map(item => {
+          return (item / e.child2.length).toFixed(1);
+        });
+      });
+      // 个人平均分数据结束
+
+// 班级平均分数据开始
+      // console.log("????", this.classScoreData);
+      // 先将每个学生的小分类整理好,放在child里面
+      console.log('this.classScoreData',this.classScoreData);
+
+      this.classScoreData.forEach(i => {
+        for (let j in i) {
+          i[j].child = [];
+          console.log(i[j]);
+          for (let k in i[j]) {
+            if (k != "child") {
+              i[j].child.push(i[j][k][i[j][k].id]);
+            }
+          }
+        }
       });
+      console.log(333);
+
+      // 将学生每个大分类的平均分整合
+      this.classScoreData.forEach(i => {
+        for (let j in i) {
+          // console.log(i[j]);
+          let arr = [];
+          i[j].child2 = [];
+          i[j].child.forEach(e => {
+
+            arr = this.addArrays(arr, e);
+          });
+          // console.log(i[j].child);
+          i[j].child2 = arr.map(item => {
+            return ((item * 1) / i[j].child.length).toFixed(1);
+          });
+        }
+      });
+      console.log(444);
+
+      // 获取学生大分类平均分
+      this.classScoreData.forEach(i => {
+        i.arr = [];
+        for (let j in i) {
+          if (j != "arr") {
+            let new1 = 0;
+            new1 = i[j].child2.reduce((pre, cur) => {
+              return pre * 1 + cur * 1;
+            }, 0);
+            i.arr.push((new1 / 3).toFixed(1));
+          }
+        }
+      });
+
+      // 获取大分类班级平均数
+      let ClaAvaArr = [];
+      this.classScoreData.forEach(i => {
+        ClaAvaArr.push(i.arr);
+      });
+      // console.log(ClaAvaArr);
+
+      let AvaArrItem = [];
+      ClaAvaArr.forEach((i, index) => {
+        AvaArrItem = this.addArrays(AvaArrItem, i);
+      });
+      AvaArrItem = AvaArrItem.map(item => {
+        return (item / this.claStuNum).toFixed(1);
+      });
+      this.classAvaScoreData = AvaArrItem;
+
+      // console.log("AvaArr", AvaArr);
+
+      // console.log("this.classScoreData", this.classScoreData);
+
+// 班级平均分数据结束
 
       // 雷达图数据---- 最后把每个大分类下的num按照,第一次第二次第三次,存储到raDataCopy中,为
       let raDataCopy = [[], [], []];
+      // console.log("VeidooList", this.VeidooList);
       this.VeidooList.forEach((e, k) => {
         raDataCopy[0].push(e.num[0]);
         raDataCopy[1].push(e.num[1]);
         raDataCopy[2].push(e.num[2]);
       });
-      // console.log("旧raDataCopy", raDataCopy);
       this.chartData = raDataCopy;
+      // console.log("raDataCopy", raDataCopy);
     },
     // 柱状图
     countCro() {
@@ -407,10 +509,19 @@ export default {
         // console.log(e);
         croMapData = this.addArrays(croMapData, e);
       });
-
+      let _this = this;
       this.croColumnarData = croMapData.map(function(item) {
-        return (item / 3).toFixed(1);
+        return (item / _this.chartData.length).toFixed(1);
       });
+      // this.croColumnarData=this.combineArrays(this.croColumnarData,this.classAvaScoreData)
+      // console.log("this.classAvaScoreData", this.classAvaScoreData);
+      let k = [this.croColumnarData, this.classAvaScoreData];
+      // this.croColumnarData.forEach((e, index) => {
+      //   k[index] = [];
+      //   k[index].push(e * 1, this.classAvaScoreData[index] * 1);
+      // });
+      this.croColumnarData = k;
+      // console.log("k", this.croColumnarData);
     },
 
     // 数据相同下标相加组成一个新数组
@@ -449,7 +560,7 @@ export default {
       const result = [];
 
       for (let i = 0; i < array2.length; i++) {
-        const sum = (array1[i] || 0) + array2[i];
+        const sum = (array1[i] || 0) + array2[i] * 1;
         result.push(sum);
       }
 
@@ -558,16 +669,18 @@ export default {
           // this.classid = res.data[0][0].classid;
           // this.getClassStudent();
 
-          console.log("this.info", this.info);
+          // console.log("this.info", this.info);
         });
     }
   },
   mounted() {},
   created() {
     this.fullscreenLoading = true;
+
     this.getStudentDetail();
     this.getClass();
     this.getYear();
+
     // console.log('数据',this.$route.query);
   }
 };

+ 132 - 3
src/components/pages/record/class.vue

@@ -53,6 +53,12 @@
                 >查询</el-button
               >
             </div>
+            <el-button
+              type="primary"
+              @click="exportExcel"
+              class="student_button"
+              >下载</el-button
+            >
           </div>
         </div>
         <div class="pb_content_body" v-if="ctype == 1">
@@ -624,6 +630,7 @@ export default {
       dialogVisibleUpdate: false,
       dialogVisibleAddStudent: false,
       tableData: [],
+      allAvaScore: [],
       page: 1,
       total: 0,
       tableData2: [],
@@ -701,6 +708,116 @@ export default {
     });
   },
   methods: {
+    saveExcel() {
+      // var res = res.data[0];
+      var res = this.allAvaScore;
+
+      // console.log('导出数据',res);
+      //如果value的json字段的key值和想要的headers值不一致时,可做如下更改
+      //将和下面的Object.fromEntries结合,将json字段的key值改变为要求的excel的header值
+      var array = [];
+      for (var i = 0; i < res.length; i++) {
+        var _json = {};
+        _json["班级"] = res[i].name;
+        _json["所属年级"] = this.getGrade(res[i].pid);
+        _json["学期前"] = res[i].avaScore[0];
+        _json["学期中"] = res[i].avaScore[1];
+        _json["学期末"] = res[i].avaScore[2];
+        _json["人数"] = res[i].num;
+        array.push(_json);
+      }
+
+      var XLSX = require("xlsx");
+      const workbook = XLSX.utils.book_new(); //创建一个新的工作簿对象
+      let ws = XLSX.utils.json_to_sheet(array); //将json对象数组转化成工作表
+      ws["!cols"] = [
+        //设置每一列的宽度
+        { wch: 30 },
+        { wch: 30 },
+        { wch: 30 },
+        { wch: 30 },
+        { wch: 30 },
+        { wch: 30 }
+      ];
+      
+      XLSX.utils.book_append_sheet(workbook, ws, "sheet1"); //把sheet添加到workbook里,第三个参数是sheet名
+      XLSX.writeFile(workbook, "班级评测平均分.xlsx");
+      // const wopts = { bookType: "xlsx", bookSST: false, type: "array" };//写入的样式bookType:输出的文件类型,type:输出的数据类型,bookSST: 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性
+      // const wbout = XLSX.write(workbook, wopts);// 浏览器端和node共有的API,实际上node可以直接使用xlsx.writeFile来写入文件,但是浏览器没有该API
+      // FileSaver.saveAs(new Blob([wbout], { type: "application/octet-stream" }), `${title} demo.xlsx`);//保存文件
+      this.isLoading = false;
+      this.$message({
+        message: "下载成功",
+        type: "success"
+      });
+    },
+
+    exportExcel() {
+      this.isLoading = true;
+      let params = {
+        // username: this.$store.state.userInfo.userid,
+        cu: "",
+        oid: this.oid,
+        cn: this.sClassName,
+        trm: this.year
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectAllClaAvaRescore", params)
+        .then(res => {
+          // console.log("下载数据", res);
+          this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
+          this.allAvaScore = res.data[0];
+          // console.log("res.data[0]", res.data[0]);
+          // 将分数添加到对应的班级
+          this.allAvaScore.forEach(j => {
+            j.child = [];
+            res.data[1].forEach(i => {
+              if (i.id == j.id) {
+                j.child.push(JSON.parse(i.json));
+              }
+            });
+          });
+          // 开始处理分数,将每个学生的小分类分数先各自整合到一起
+          this.allAvaScore.forEach(i => {
+            i.child.forEach(j => {
+              j.child = [];
+              for (let key in j) {
+                // console.log("j", j[key]);
+                if (key !== "child") {
+                  for (let l in j[key]) {
+                    // console.log("l", j[key][l][j[key][l].id]);
+                    j.child.push(j[key][l][j[key][l].id]);
+                  }
+                }
+              }
+              // 学生个人分数整合完毕,将个人平均分添加到childNum里面
+              j.childNum = [];
+              j.child.forEach(k => {
+                j.childNum = this.addArrays(j.childNum, k);
+              });
+              j.childNum = j.childNum.map(i => (i / j.child.length).toFixed(1));
+            });
+          });
+          this.allAvaScore.forEach(i => {
+            i.avaScore = [];
+            i.child.forEach(j => {
+              i.avaScore = this.addArrays(i.avaScore, j.childNum);
+            });
+            // console.log("前i.avaScore", i.avaScore);
+            i.avaScore = i.avaScore.map(b => ((b * 1) / i.pnum).toFixed(1));
+            if (!i.avaScore.length) {
+              i.avaScore = [0, 0, 0];
+            }
+            // console.log("avaScore", i.avaScore);
+          });
+          this.saveExcel();
+          // console.log("this.allAvaScore", this.allAvaScore);
+        })
+        .catch(err => {
+          this.isLoading = false;
+          console.error(err);
+        });
+    },
     getClassAverageScore() {
       this.isLoading = true;
       let params = {
@@ -717,7 +834,7 @@ export default {
           console.log(res);
           this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
           this.tableData = res.data[0];
-
+          console.log("res.data[0]", res.data[0]);
           // 将分数添加到对应的班级
           this.tableData.forEach(j => {
             j.child = [];
@@ -968,6 +1085,7 @@ export default {
           // this.isLoading = false;
           this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
           this.tableData = res.data[0];
+          console.log("selectClass", selectClass);
         })
         .catch(err => {
           // this.isLoading = false;
@@ -1372,6 +1490,16 @@ export default {
 .student_head >>> .el-button--primary {
   background-color: #2268bc;
 }
+/* .student_head > .saveBtn {
+  color: #fff;
+  background: #2268bc;
+  width: 60px;
+  height: 30px;
+  padding: 0 !important;
+  font-size: 12px;
+  line-height: 30px;
+  bor
+} */
 
 .xls_button {
   font-size: 14px;
@@ -1391,12 +1519,12 @@ export default {
   justify-content: flex-end;
 }
 
-.student_head {
+/* .student_head {
   margin-top: 10px;
   padding-bottom: 15px;
   display: flex;
   justify-content: space-between;
-}
+} */
 
 .student_search {
   display: flex;
@@ -1453,6 +1581,7 @@ export default {
   margin-top: 10px;
   padding-bottom: 10px;
   display: flex;
+  align-items: center;
   justify-content: space-between;
 }