|
@@ -9,6 +9,7 @@
|
|
|
<exam-select
|
|
|
v-model="filter.examId"
|
|
|
:semester-id="filter.semesterId"
|
|
|
+ @change="examChange"
|
|
|
></exam-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="开课学院:">
|
|
@@ -87,6 +88,7 @@
|
|
|
type="primary"
|
|
|
icon="el-icon-refresh"
|
|
|
:loading="loading"
|
|
|
+ :disabled="!filter.examId"
|
|
|
@click="toFresh"
|
|
|
>刷新数据</el-button
|
|
|
>
|
|
@@ -102,8 +104,10 @@
|
|
|
btn-content="导入"
|
|
|
btn-type="success"
|
|
|
:upload-url="uploadUrl"
|
|
|
+ :upload-data="uploadData"
|
|
|
:format="['xls', 'xlsx']"
|
|
|
accept=".xls,.xlsx"
|
|
|
+ :disabled="!filter.examId"
|
|
|
@valid-error="validError"
|
|
|
@upload-success="uploadSuccess"
|
|
|
>
|
|
@@ -128,21 +132,31 @@
|
|
|
:index="indexMethod"
|
|
|
></el-table-column>
|
|
|
<el-table-column prop="collegeName" label="开课学院"></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="teachingRoomName"
|
|
|
- label="开课部门"
|
|
|
- ></el-table-column>
|
|
|
+ <el-table-column prop="teachingRoom" label="开课部门"></el-table-column>
|
|
|
<el-table-column prop="courseCode" label="课程代码"></el-table-column>
|
|
|
<el-table-column prop="courseName" label="课程名称"></el-table-column>
|
|
|
- <el-table-column prop="teacherName" label="任课老师"></el-table-column>
|
|
|
- <el-table-column prop="clazzName" label="班级名称"></el-table-column>
|
|
|
+ <el-table-column prop="teacher" label="任课老师"></el-table-column>
|
|
|
+ <el-table-column prop="clazzNames" label="班级名称"></el-table-column>
|
|
|
<el-table-column prop="paperNumber" label="试卷编号"></el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="printPlanName"
|
|
|
+ prop="examPrintPlanName"
|
|
|
label="印刷计划"
|
|
|
></el-table-column>
|
|
|
- <el-table-column prop="printSum" label="总印份数"></el-table-column>
|
|
|
- <el-table-column prop="statusStr" label="状态"> </el-table-column>
|
|
|
+ <el-table-column prop="studentCount" label="总印份数"></el-table-column>
|
|
|
+ <el-table-column prop="status" label="状态">
|
|
|
+ <span slot-scope="scope">{{ FINISH_STATUS[scope.row.status] }}</span>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column class-name="action-column" label="操作" width="100px">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ v-if="scope.row.clazzContent"
|
|
|
+ class="btn-primary"
|
|
|
+ type="text"
|
|
|
+ @click="toDetail(scope.row)"
|
|
|
+ >详情</el-button
|
|
|
+ ></template
|
|
|
+ ></el-table-column
|
|
|
+ >
|
|
|
</el-table>
|
|
|
<div class="part-page">
|
|
|
<el-pagination
|
|
@@ -156,6 +170,12 @@
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <!-- StatisticsDetailDialog -->
|
|
|
+ <statistics-detail-dialog
|
|
|
+ :contents="curContents"
|
|
|
+ ref="StatisticsDetailDialog"
|
|
|
+ ></statistics-detail-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -163,10 +183,11 @@
|
|
|
import { statisticsList, statisticsDelete, statisticsFreshen } from "../api";
|
|
|
import { organizationFindByTypeList } from "../../base/api";
|
|
|
import UploadButton from "../../../components/UploadButton";
|
|
|
+import StatisticsDetailDialog from "../components/StatisticsDetailDialog.vue";
|
|
|
|
|
|
export default {
|
|
|
name: "exam-statistics",
|
|
|
- components: { UploadButton },
|
|
|
+ components: { UploadButton, StatisticsDetailDialog },
|
|
|
data() {
|
|
|
return {
|
|
|
filter: {
|
|
@@ -184,10 +205,12 @@ export default {
|
|
|
total: 0,
|
|
|
dataList: [],
|
|
|
curRow: {},
|
|
|
+ curContents: [],
|
|
|
teachingRooms: [],
|
|
|
multipleSelection: [],
|
|
|
FINISH_STATUS: { UN_FINISH: "未完成", FINISH: "已完成" },
|
|
|
// import
|
|
|
+ uploadData: {},
|
|
|
uploadUrl: "/api/admin/statistics/import",
|
|
|
downloadUrl: "/temps/examStatisticsTemplate.xlsx",
|
|
|
dfilename: "命题计划导入模板.xlsx"
|
|
@@ -227,6 +250,11 @@ export default {
|
|
|
if (!val) return;
|
|
|
this.getTeachingRooms();
|
|
|
},
|
|
|
+ examChange() {
|
|
|
+ this.uploadData = {
|
|
|
+ examId: this.filter.examId
|
|
|
+ };
|
|
|
+ },
|
|
|
handleSelectionChange(val) {
|
|
|
this.multipleSelection = val.map(item => item.id);
|
|
|
},
|
|
@@ -253,14 +281,29 @@ export default {
|
|
|
this.toPage(this.current);
|
|
|
},
|
|
|
async toFresh() {
|
|
|
+ if (!this.filter.examId) {
|
|
|
+ this.$message.error("请先选择考试");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
this.loading = true;
|
|
|
- const data = await statisticsFreshen().catch(() => {});
|
|
|
+ const data = await statisticsFreshen({
|
|
|
+ examId: this.filter.examId
|
|
|
+ }).catch(() => {});
|
|
|
this.loading = false;
|
|
|
if (!data) return;
|
|
|
|
|
|
this.$message.success("刷新成功!");
|
|
|
this.toPage(1);
|
|
|
},
|
|
|
+ toDetail(row) {
|
|
|
+ if (!row.clazzContent) {
|
|
|
+ this.$message.error("当前无详情展示");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.curContents = JSON.parse(row.clazzContent);
|
|
|
+ this.$refs.StatisticsDetailDialog.open();
|
|
|
+ },
|
|
|
// import
|
|
|
validError(errorData) {
|
|
|
this.$message.error(errorData.message);
|