|
@@ -0,0 +1,143 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="part-box part-box-pad">
|
|
|
|
+ <el-table
|
|
|
|
+ :data="dataList"
|
|
|
|
+ border
|
|
|
|
+ :cell-style="cellStyleHandle"
|
|
|
|
+ :summary-method="getSummaries"
|
|
|
|
+ show-summary
|
|
|
|
+ >
|
|
|
|
+ <el-table-column label="课程信息" align="center">
|
|
|
|
+ <el-table-column label="课程名称(代码)" min-width="200">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{ scope.row.courseName }}({{ scope.row.courseCode }})
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="学期"
|
|
|
|
+ prop="semesterName"
|
|
|
|
+ width="140"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="学分"
|
|
|
|
+ prop="credit"
|
|
|
|
+ width="80"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column label="毕业要求" align="center">
|
|
|
|
+ <template v-if="hasSubRequirements">
|
|
|
|
+ <el-table-column
|
|
|
|
+ v-for="(column, cindex) in columns"
|
|
|
|
+ :key="cindex"
|
|
|
|
+ :label="column.name"
|
|
|
|
+ align="center"
|
|
|
|
+ >
|
|
|
|
+ <el-table-column
|
|
|
|
+ v-for="subr in column.subRequirements"
|
|
|
|
+ :key="subr.name"
|
|
|
|
+ align="center"
|
|
|
|
+ :prop="`${column.name}_${subr.name}`"
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{ scope.row[`${column.name}_${subr.name}`].value }}
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ <template v-else>
|
|
|
|
+ <el-table-column
|
|
|
|
+ v-for="(column, cindex) in columns"
|
|
|
|
+ :key="cindex"
|
|
|
|
+ :label="column.name"
|
|
|
|
+ align="center"
|
|
|
|
+ :prop="`${column.name}_null`"
|
|
|
|
+ >
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span>{{ scope.row[`${column.name}_null`].value }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+import { requirementStatisticsDetail } from "../../api";
|
|
|
|
+
|
|
|
|
+export default {
|
|
|
|
+ name: "requirement-statistics-statement",
|
|
|
|
+ props: {
|
|
|
|
+ rowData: {
|
|
|
|
+ type: Object,
|
|
|
|
+ default() {
|
|
|
|
+ return {};
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ dataList: [],
|
|
|
|
+ columns: [],
|
|
|
|
+ hasSubRequirements: false,
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ mounted() {
|
|
|
|
+ this.getList();
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ async getList() {
|
|
|
|
+ const res = await requirementStatisticsDetail({
|
|
|
|
+ cultureProgramId: this.rowData.id,
|
|
|
|
+ });
|
|
|
|
+ const tableData = res || [];
|
|
|
|
+ this.dataList = tableData.map((item, index) => {
|
|
|
|
+ if (!index) this.parseColumns(item.requirements);
|
|
|
|
+
|
|
|
|
+ const nitem = {
|
|
|
|
+ courseId: item.courseId,
|
|
|
|
+ courseCode: item.courseCode,
|
|
|
|
+ courseName: item.courseName,
|
|
|
|
+ canEdit: item.canEdit,
|
|
|
|
+ };
|
|
|
|
+ item.requirements.forEach((requirement) => {
|
|
|
|
+ requirement.subRequirements.forEach((subr) => {
|
|
|
|
+ nitem[`${requirement.name}_${subr.name + ""}`] = {
|
|
|
|
+ id: subr.id,
|
|
|
|
+ value: subr.scale || undefined,
|
|
|
|
+ };
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ return nitem;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ parseColumns(requirements) {
|
|
|
|
+ this.hasSubRequirements = requirements.some(
|
|
|
|
+ (item) => item.subRequirements[0].name !== null
|
|
|
|
+ );
|
|
|
|
+ if (!this.hasSubRequirements) {
|
|
|
|
+ this.columns = requirements.map((item, index) => {
|
|
|
|
+ return { name: item.name, columnIndex: index + 1 };
|
|
|
|
+ });
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ let cindex = 0;
|
|
|
|
+ this.columns = requirements.map((item) => {
|
|
|
|
+ return {
|
|
|
|
+ name: item.name,
|
|
|
|
+ subRequirements: item.subRequirements.map((subr) => {
|
|
|
|
+ return {
|
|
|
|
+ name: subr.name + "",
|
|
|
|
+ columnIndex: ++cindex,
|
|
|
|
+ content: subr.content,
|
|
|
|
+ };
|
|
|
|
+ }),
|
|
|
|
+ };
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+</script>
|