|
@@ -27,6 +27,7 @@
|
|
|
placeholder="请输入班级名称"
|
|
|
v-model="sClassName"
|
|
|
clearable
|
|
|
+ @change="getClassAverageScore"
|
|
|
class="student_input"
|
|
|
>
|
|
|
</el-input>
|
|
@@ -48,9 +49,9 @@
|
|
|
</span>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
- @click="getClassAverageScore"
|
|
|
+ @click="resetting"
|
|
|
class="student_button"
|
|
|
- >查询</el-button
|
|
|
+ >重置</el-button
|
|
|
>
|
|
|
</div>
|
|
|
<el-button
|
|
@@ -613,8 +614,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import TaskListHeader from "gantt-elastic/src/components/TaskList/TaskListHeader.vue";
|
|
|
-
|
|
|
+import XLSX from "xlsx-js-style";
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
@@ -723,11 +723,11 @@ export default {
|
|
|
_json["学期前"] = res[i].avaScore[0];
|
|
|
_json["学期中"] = res[i].avaScore[1];
|
|
|
_json["学期末"] = res[i].avaScore[2];
|
|
|
- _json["人数"] = res[i].num;
|
|
|
+ _json["人数"] = res[i].pnum;
|
|
|
array.push(_json);
|
|
|
}
|
|
|
|
|
|
- var XLSX = require("xlsx");
|
|
|
+ // var XLSX = require("xlsx");
|
|
|
const workbook = XLSX.utils.book_new(); //创建一个新的工作簿对象
|
|
|
let ws = XLSX.utils.json_to_sheet(array); //将json对象数组转化成工作表
|
|
|
ws["!cols"] = [
|
|
@@ -739,8 +739,33 @@ export default {
|
|
|
{ wch: 30 },
|
|
|
{ wch: 30 }
|
|
|
];
|
|
|
-
|
|
|
+ const styleObj = { alignment: { horizontal: "center" } }; // 设置居中对齐和加粗样式
|
|
|
+
|
|
|
+ for (let cell in ws) {
|
|
|
+ if (!cell[0].startsWith("!")) {
|
|
|
+ ws[cell]["s"] = styleObj;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 添加样式
|
|
|
+ // for (let i = 0; i < array.length + 1; i++) {
|
|
|
+ // const cellStyle = { alignment: { horizontal: "center" } };
|
|
|
+
|
|
|
+ // if (i === 0) {
|
|
|
+ // // 第一行标题居中
|
|
|
+ // cellStyle["font"] = { bold: true };
|
|
|
+ // } else {
|
|
|
+ // // 内容居中
|
|
|
+ // cellStyle["alignment"] = { vertical: "middle", wrapText: true };
|
|
|
+ // }
|
|
|
+
|
|
|
+ // XLSX.utils.cell_set_style(
|
|
|
+ // ws[XLSX.utils.encode_row(i)][0],
|
|
|
+ // cellStyle
|
|
|
+ // );
|
|
|
+ // }
|
|
|
+
|
|
|
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
|
|
@@ -767,6 +792,7 @@ export default {
|
|
|
// 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]);
|
|
|
// console.log("res.data[0]", res.data[0]);
|
|
|
// 将分数添加到对应的班级
|
|
|
this.allAvaScore.forEach(j => {
|
|
@@ -818,6 +844,15 @@ export default {
|
|
|
console.error(err);
|
|
|
});
|
|
|
},
|
|
|
+ resetting() {
|
|
|
+ this.sClassName = "";
|
|
|
+ for (var i = 0; i < this.yearJuri.length; i++) {
|
|
|
+ if (this.yearJuri[i].defaultC == 1) {
|
|
|
+ this.year = this.yearJuri[i].id;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.getClassAverageScore();
|
|
|
+ },
|
|
|
getClassAverageScore() {
|
|
|
this.isLoading = true;
|
|
|
let params = {
|