Commit 7812e986196aed320204e84d5487c29b5b061fbf
1 parent
22095aba
班主任查看报表添加额外信息
Showing
28 changed files
with
114 additions
and
46 deletions
src/api/axios.js
| @@ -24,6 +24,13 @@ service.interceptors.request.use( | @@ -24,6 +24,13 @@ service.interceptors.request.use( | ||
| 24 | const source = axios.CancelToken.source(); | 24 | const source = axios.CancelToken.source(); |
| 25 | store.commit("setTokenSources", [source.token, source.cancel]); | 25 | store.commit("setTokenSources", [source.token, source.cancel]); |
| 26 | config.cancelToken = source.token; | 26 | config.cancelToken = source.token; |
| 27 | + const role = store.getters.info.showRole || store.getters.info.permissions[0].role; | ||
| 28 | + if (role == "ROLE_BANZHUREN") { | ||
| 29 | + const classes = store.getters.classes | ||
| 30 | + config.manager = 1 | ||
| 31 | + config.classes = classes | ||
| 32 | + } | ||
| 33 | + console.log(config) | ||
| 27 | return config; | 34 | return config; |
| 28 | }, | 35 | }, |
| 29 | (error) => { | 36 | (error) => { |
src/components/charts/lineChart.vue
src/components/exportDia.vue
| @@ -25,10 +25,13 @@ | @@ -25,10 +25,13 @@ | ||
| 25 | <el-table-column prop="studentName" label="姓名" align="center"></el-table-column> | 25 | <el-table-column prop="studentName" label="姓名" align="center"></el-table-column> |
| 26 | <el-table-column label="班名" align="center"> | 26 | <el-table-column label="班名" align="center"> |
| 27 | <template slot-scope="scoped">{{ | 27 | <template slot-scope="scoped">{{ |
| 28 | - scoped.row.classRank || scoped.row.rank }}</template> | 28 | + scoped.row.classRank || scoped.row.rank || scoped.row.examList[0].classRank }}</template> |
| 29 | </el-table-column> | 29 | </el-table-column> |
| 30 | - <el-table-column prop="correctRate" label="总正确率" align="center"><template slot-scope="scoped">{{ | ||
| 31 | - scoped.row.correctRate|| scoped.row.scoringRate }}%</template></el-table-column> | 30 | + <el-table-column prop="correctRate" :label="this.lastLabel" align="center"><template slot-scope="scoped"> |
| 31 | + <span v-if="scoped.row.correctRate || scoped.row.scoringRate">{{ | ||
| 32 | + scoped.row.correctRate || scoped.row.scoringRate }}%</span> | ||
| 33 | + <span v-else>{{ scoped.row.examList[0].score }}</span> | ||
| 34 | + </template></el-table-column> | ||
| 32 | </el-table> | 35 | </el-table> |
| 33 | </ul> | 36 | </ul> |
| 34 | <div class="dialog-footer" slot="footer"> | 37 | <div class="dialog-footer" slot="footer"> |
| @@ -44,7 +47,11 @@ export default { | @@ -44,7 +47,11 @@ export default { | ||
| 44 | name: "exportDia", | 47 | name: "exportDia", |
| 45 | props: { | 48 | props: { |
| 46 | diaShow: Boolean, | 49 | diaShow: Boolean, |
| 47 | - exportStudent: Array | 50 | + exportStudent: Array, |
| 51 | + lastLabel: { | ||
| 52 | + type: String, | ||
| 53 | + default: '总正确率' | ||
| 54 | + } | ||
| 48 | }, | 55 | }, |
| 49 | data() { | 56 | data() { |
| 50 | return { | 57 | return { |
src/store/index.js
| @@ -25,6 +25,7 @@ const store = new Vuex.Store({ | @@ -25,6 +25,7 @@ const store = new Vuex.Store({ | ||
| 25 | ? JSON.parse(localStorage.getItem("addRouters")) | 25 | ? JSON.parse(localStorage.getItem("addRouters")) |
| 26 | : [], //动态路由 | 26 | : [], //动态路由 |
| 27 | tokenSources: new Map(), //正在请求接口(切换取消请求) | 27 | tokenSources: new Map(), //正在请求接口(切换取消请求) |
| 28 | + classes: localStorage.getItem("classes") || "", //班主任选择班级查询报表(用于教学班学生筛选) | ||
| 28 | }, | 29 | }, |
| 29 | mutations: { | 30 | mutations: { |
| 30 | setToken(state, token) { | 31 | setToken(state, token) { |
| @@ -71,6 +72,10 @@ const store = new Vuex.Store({ | @@ -71,6 +72,10 @@ const store = new Vuex.Store({ | ||
| 71 | delTokenSources(state, data) { | 72 | delTokenSources(state, data) { |
| 72 | state.tokenSources.delete(data); | 73 | state.tokenSources.delete(data); |
| 73 | }, | 74 | }, |
| 75 | + setClasses(state, data) { | ||
| 76 | + state.classes = data; | ||
| 77 | + localStorage.setItem("classes", data); | ||
| 78 | + } | ||
| 74 | }, | 79 | }, |
| 75 | actions: { | 80 | actions: { |
| 76 | Login({ state, commit }, params) { | 81 | Login({ state, commit }, params) { |
| @@ -192,9 +197,10 @@ const store = new Vuex.Store({ | @@ -192,9 +197,10 @@ const store = new Vuex.Store({ | ||
| 192 | getters: { | 197 | getters: { |
| 193 | addRouters: (state) => state.addRouters, | 198 | addRouters: (state) => state.addRouters, |
| 194 | token: (state) => state.token, | 199 | token: (state) => state.token, |
| 195 | - code: (state) => state.csCode, | 200 | + csCode: (state) => state.csCode, |
| 196 | info: (state) => state.info, | 201 | info: (state) => state.info, |
| 197 | routers: (state) => state.routers, | 202 | routers: (state) => state.routers, |
| 203 | + classes: (state) => state.classes, | ||
| 198 | logoShow: (state) => state.layoutStore.logoShow, | 204 | logoShow: (state) => state.layoutStore.logoShow, |
| 199 | isCollapse: (state) => state.layoutStore.isCollapse, | 205 | isCollapse: (state) => state.layoutStore.isCollapse, |
| 200 | uniquerouter: (state) => state.layoutStore.uniquerouter, | 206 | uniquerouter: (state) => state.layoutStore.uniquerouter, |
src/views/admin/device/index.vue
| @@ -284,7 +284,7 @@ export default { | @@ -284,7 +284,7 @@ export default { | ||
| 284 | }; | 284 | }; |
| 285 | }, | 285 | }, |
| 286 | created() { | 286 | created() { |
| 287 | - this.code = localStorage.getItem("csCode") || ""; | 287 | + this.code = this.$store.getters.csCode; |
| 288 | this.stationReport(); | 288 | this.stationReport(); |
| 289 | this._QueryData(); | 289 | this._QueryData(); |
| 290 | }, | 290 | }, |
src/views/basic/ask/archiving.vue
| @@ -494,7 +494,7 @@ export default { | @@ -494,7 +494,7 @@ export default { | ||
| 494 | }; | 494 | }; |
| 495 | }, | 495 | }, |
| 496 | async created() { | 496 | async created() { |
| 497 | - this.code = localStorage.getItem("csCode") || ""; | 497 | + this.code = this.$store.getters.csCode; |
| 498 | this.role = | 498 | this.role = |
| 499 | this.$store.getters.info.showRole || | 499 | this.$store.getters.info.showRole || |
| 500 | this.$store.getters.info.permissions[0].role; | 500 | this.$store.getters.info.permissions[0].role; |
src/views/basic/ask/index.vue
| @@ -77,7 +77,7 @@ export default { | @@ -77,7 +77,7 @@ export default { | ||
| 77 | }; | 77 | }; |
| 78 | }, | 78 | }, |
| 79 | async created() { | 79 | async created() { |
| 80 | - this.code = localStorage.getItem("csCode") || ""; | 80 | + this.code = this.$store.getters.csCode; |
| 81 | this.role = | 81 | this.role = |
| 82 | this.$store.getters.info.showRole || | 82 | this.$store.getters.info.showRole || |
| 83 | this.$store.getters.info.permissions[0].role; | 83 | this.$store.getters.info.permissions[0].role; |
src/views/basic/ask/list.vue
| @@ -93,9 +93,7 @@ export default { | @@ -93,9 +93,7 @@ export default { | ||
| 93 | } | 93 | } |
| 94 | }, | 94 | }, |
| 95 | async created() { | 95 | async created() { |
| 96 | - this.code = localStorage.getItem("csCode") || ""; | ||
| 97 | - const queryData = this.$route.query.params | ||
| 98 | - queryData ? this.query = { ...this.query, ...JSON.parse(queryData) } : '' | 96 | + this.code = this.$store.getters.csCode; |
| 99 | this.init() | 97 | this.init() |
| 100 | }, | 98 | }, |
| 101 | watch: { | 99 | watch: { |
| @@ -109,12 +107,15 @@ export default { | @@ -109,12 +107,15 @@ export default { | ||
| 109 | methods: { | 107 | methods: { |
| 110 | //初始化 | 108 | //初始化 |
| 111 | init() { | 109 | init() { |
| 110 | + const queryData = this.$route.query.params | ||
| 111 | + queryData ? this.query = { ...this.query, ...JSON.parse(queryData) } : '' | ||
| 112 | this.role = | 112 | this.role = |
| 113 | this.$store.getters.info.showRole || | 113 | this.$store.getters.info.showRole || |
| 114 | this.$store.getters.info.permissions[0].role; | 114 | this.$store.getters.info.permissions[0].role; |
| 115 | if (this.role != "ROLE_PERSONAL") { | 115 | if (this.role != "ROLE_PERSONAL") { |
| 116 | this._QueryGdClass() | 116 | this._QueryGdClass() |
| 117 | }; | 117 | }; |
| 118 | + this.$store.commit('setClasses', this.query.classId) | ||
| 118 | this.page = 1 | 119 | this.page = 1 |
| 119 | this.total = 0 | 120 | this.total = 0 |
| 120 | this.tableData = [] | 121 | this.tableData = [] |
src/views/basic/device/index.vue
| @@ -387,7 +387,7 @@ export default { | @@ -387,7 +387,7 @@ export default { | ||
| 387 | }; | 387 | }; |
| 388 | }, | 388 | }, |
| 389 | created() { | 389 | created() { |
| 390 | - this.code = localStorage.getItem("csCode") || ""; | 390 | + this.code = this.$store.getters.csCode; |
| 391 | this.role = | 391 | this.role = |
| 392 | this.$store.getters.info.showRole || | 392 | this.$store.getters.info.showRole || |
| 393 | this.$store.getters.info.permissions[0].role; | 393 | this.$store.getters.info.permissions[0].role; |
src/views/basic/setUp/account.vue
| @@ -435,7 +435,7 @@ export default { | @@ -435,7 +435,7 @@ export default { | ||
| 435 | }; | 435 | }; |
| 436 | }, | 436 | }, |
| 437 | created() { | 437 | created() { |
| 438 | - this.code = localStorage.getItem("csCode") || ""; | 438 | + this.code = this.$store.getters.csCode; |
| 439 | this.role = | 439 | this.role = |
| 440 | this.$store.getters.info.showRole || | 440 | this.$store.getters.info.showRole || |
| 441 | this.$store.getters.info.permissions[0].role; | 441 | this.$store.getters.info.permissions[0].role; |
src/views/basic/setUp/clazz.vue
| @@ -200,7 +200,7 @@ export default { | @@ -200,7 +200,7 @@ export default { | ||
| 200 | } | 200 | } |
| 201 | }, | 201 | }, |
| 202 | async created() { | 202 | async created() { |
| 203 | - this.code = localStorage.getItem("csCode") || ""; | 203 | + this.code = this.$store.getters.csCode; |
| 204 | this._QueryData(); | 204 | this._QueryData(); |
| 205 | this._QuerySubject(); | 205 | this._QuerySubject(); |
| 206 | }, | 206 | }, |
src/views/basic/setUp/school.vue
| @@ -214,7 +214,7 @@ export default { | @@ -214,7 +214,7 @@ export default { | ||
| 214 | }, | 214 | }, |
| 215 | }, | 215 | }, |
| 216 | created() { | 216 | created() { |
| 217 | - this.code = localStorage.getItem("csCode") || ""; | 217 | + this.code = this.$store.getters.csCode; |
| 218 | this._QueryDataSchool(); | 218 | this._QueryDataSchool(); |
| 219 | this._QueryDataGrade(); | 219 | this._QueryDataGrade(); |
| 220 | this._QuerySectionList(); | 220 | this._QuerySectionList(); |
src/views/basic/setUp/student.vue
| @@ -289,7 +289,7 @@ export default { | @@ -289,7 +289,7 @@ export default { | ||
| 289 | }, | 289 | }, |
| 290 | }, | 290 | }, |
| 291 | async created() { | 291 | async created() { |
| 292 | - this.code = localStorage.getItem("csCode") || ""; | 292 | + this.code = this.$store.getters.csCode; |
| 293 | this.role = | 293 | this.role = |
| 294 | this.$store.getters.info.showRole || | 294 | this.$store.getters.info.showRole || |
| 295 | this.$store.getters.info.permissions[0].role; | 295 | this.$store.getters.info.permissions[0].role; |
src/views/basic/setUp/teacher.vue
| @@ -313,7 +313,7 @@ export default { | @@ -313,7 +313,7 @@ export default { | ||
| 313 | } | 313 | } |
| 314 | }, | 314 | }, |
| 315 | async created() { | 315 | async created() { |
| 316 | - this.code = localStorage.getItem("csCode") || ""; | 316 | + this.code = this.$store.getters.csCode; |
| 317 | this._QueryData(4); | 317 | this._QueryData(4); |
| 318 | await this._QueryDataGrade(); | 318 | await this._QueryDataGrade(); |
| 319 | // this._RoleList(); | 319 | // this._RoleList(); |
src/views/basic/test/analysis.vue
| @@ -41,7 +41,7 @@ export default { | @@ -41,7 +41,7 @@ export default { | ||
| 41 | this.$store.getters.info.showRole || | 41 | this.$store.getters.info.showRole || |
| 42 | this.$store.getters.info.permissions[0].role; | 42 | this.$store.getters.info.permissions[0].role; |
| 43 | this.id = this.$route.query.id || ""; | 43 | this.id = this.$route.query.id || ""; |
| 44 | - this.ids = this.$route.query.ids && this.$route.query.ids.split(",") || ""; | 44 | + this.ids = this.$route.query.ids && this.$route.query.ids.split(",") || []; |
| 45 | this.type = this.$route.query.type | 45 | this.type = this.$route.query.type |
| 46 | this.classId = this.$route.query.classId || ""; | 46 | this.classId = this.$route.query.classId || ""; |
| 47 | this.title = this.$route.query.title || "" | 47 | this.title = this.$route.query.title || "" |
src/views/basic/test/components/contrast.vue
src/views/basic/test/components/multipleSubTest.vue
| @@ -52,8 +52,8 @@ export default { | @@ -52,8 +52,8 @@ export default { | ||
| 52 | props: { | 52 | props: { |
| 53 | role: "", | 53 | role: "", |
| 54 | ids: Array, | 54 | ids: Array, |
| 55 | - classIds: Array, | ||
| 56 | - subjectNames: Array, | 55 | + classId: String, |
| 56 | + subjectName: String, | ||
| 57 | }, | 57 | }, |
| 58 | data() { | 58 | data() { |
| 59 | return { | 59 | return { |
| @@ -135,13 +135,34 @@ export default { | @@ -135,13 +135,34 @@ export default { | ||
| 135 | }, | 135 | }, |
| 136 | //查看雷达图 | 136 | //查看雷达图 |
| 137 | openChart(obj) { | 137 | openChart(obj) { |
| 138 | + | ||
| 138 | this.chartTitle = obj.studentName + '-多科-多课时作答表现图' | 139 | this.chartTitle = obj.studentName + '-多科-多课时作答表现图' |
| 139 | - let subjectList = obj.dataList.map(item => item.subjectName) | 140 | + let max = 0; |
| 141 | + let subjectList = obj.dataList.map(item => { | ||
| 142 | + let score = Number(item.highestScore || item.score) | ||
| 143 | + max = score > max ? score : max | ||
| 144 | + return item.subjectName | ||
| 145 | + }) | ||
| 146 | + max += 10 | ||
| 147 | + max = max > 150 ? 150 : max | ||
| 148 | + this.chartData = { | ||
| 149 | + indicator: [ | ||
| 150 | + { | ||
| 151 | + name: '', max: max, | ||
| 152 | + axisLabel: { | ||
| 153 | + show: true, | ||
| 154 | + showMaxLabel: true, | ||
| 155 | + }, | ||
| 156 | + }, | ||
| 157 | + ], | ||
| 158 | + seriesData: [] | ||
| 159 | + } | ||
| 140 | subjectList.map((item, index) => { | 160 | subjectList.map((item, index) => { |
| 141 | if (index < 1) { | 161 | if (index < 1) { |
| 142 | this.chartData.indicator[index].name = item | 162 | this.chartData.indicator[index].name = item |
| 163 | + this.chartData.indicator[index].max = max | ||
| 143 | } else { | 164 | } else { |
| 144 | - this.chartData.indicator.push({ name: item, max: 100 }) | 165 | + this.chartData.indicator.push({ name: item, max: max }) |
| 145 | } | 166 | } |
| 146 | }) | 167 | }) |
| 147 | // 为了美观 | 168 | // 为了美观 |
| @@ -149,7 +170,7 @@ export default { | @@ -149,7 +170,7 @@ export default { | ||
| 149 | let num = this.chartData.indicator.length | 170 | let num = this.chartData.indicator.length |
| 150 | for (let i = 0; i < 6; i++) { | 171 | for (let i = 0; i < 6; i++) { |
| 151 | if (i >= num) { | 172 | if (i >= num) { |
| 152 | - this.chartData.indicator.push({ name: "", max: 100 }) | 173 | + this.chartData.indicator.push({ name: "", max: max }) |
| 153 | } | 174 | } |
| 154 | } | 175 | } |
| 155 | } | 176 | } |
| @@ -174,7 +195,7 @@ export default { | @@ -174,7 +195,7 @@ export default { | ||
| 174 | async phaseExamReport() { | 195 | async phaseExamReport() { |
| 175 | this.loading = true; | 196 | this.loading = true; |
| 176 | const { data, status, info } = await this.$request.cTPhaseExamReport({ | 197 | const { data, status, info } = await this.$request.cTPhaseExamReport({ |
| 177 | - classIds: this.classId.split(','), | 198 | + classId: this.classId, |
| 178 | examIds: this.ids, | 199 | examIds: this.ids, |
| 179 | subjectNames: this.subjectList, | 200 | subjectNames: this.subjectList, |
| 180 | }); | 201 | }); |
src/views/basic/test/components/multipleTest.vue
| @@ -31,7 +31,7 @@ | @@ -31,7 +31,7 @@ | ||
| 31 | <LineChart id="lineChart" :params="chartData" :xAxis="xAxis" :formatterYAxis="false" /> | 31 | <LineChart id="lineChart" :params="chartData" :xAxis="xAxis" :formatterYAxis="false" /> |
| 32 | </div> | 32 | </div> |
| 33 | </el-dialog> | 33 | </el-dialog> |
| 34 | - <ExportDia :exportStudent="exportStudent" :diaShow="diaShow" @cancel="cancel" @exportData="exportData" /> | 34 | + <ExportDia :exportStudent="exportStudent" :diaShow="diaShow" @cancel="cancel" @exportData="exportData" lastLabel="总分"/> |
| 35 | </div> | 35 | </div> |
| 36 | <!-- 单科多卷 --> | 36 | <!-- 单科多卷 --> |
| 37 | </template> | 37 | </template> |
src/views/basic/test/components/scoreSet.vue
| @@ -161,7 +161,7 @@ export default { | @@ -161,7 +161,7 @@ export default { | ||
| 161 | upSuccess(res) { | 161 | upSuccess(res) { |
| 162 | this.$message.success("导入成功"); | 162 | this.$message.success("导入成功"); |
| 163 | this.diaUp = false; | 163 | this.diaUp = false; |
| 164 | - this._QueryData() | 164 | + this.closeScoreSet() |
| 165 | }, | 165 | }, |
| 166 | async downExcel() { | 166 | async downExcel() { |
| 167 | //模板下载 | 167 | //模板下载 |
src/views/basic/test/components/test.vue
| @@ -651,7 +651,7 @@ div::-webkit-scrollbar-thumb { | @@ -651,7 +651,7 @@ div::-webkit-scrollbar-thumb { | ||
| 651 | background-color: #ffebec; | 651 | background-color: #ffebec; |
| 652 | font-size: 14px; | 652 | font-size: 14px; |
| 653 | color: #fd9795; | 653 | color: #fd9795; |
| 654 | - margin: 10px 20px 0 20px; | 654 | + margin: 0 20px 10px 20px; |
| 655 | display: flex; | 655 | display: flex; |
| 656 | 656 | ||
| 657 | &-p { | 657 | &-p { |
src/views/basic/test/index.vue
| @@ -87,7 +87,7 @@ export default { | @@ -87,7 +87,7 @@ export default { | ||
| 87 | }; | 87 | }; |
| 88 | }, | 88 | }, |
| 89 | async created() { | 89 | async created() { |
| 90 | - this.code = localStorage.getItem("csCode") || ""; | 90 | + this.code = this.$store.getters.csCode; |
| 91 | this.role = | 91 | this.role = |
| 92 | this.$store.getters.info.showRole || | 92 | this.$store.getters.info.showRole || |
| 93 | this.$store.getters.info.permissions[0].role; | 93 | this.$store.getters.info.permissions[0].role; |
src/views/basic/test/list.vue
| @@ -62,13 +62,11 @@ | @@ -62,13 +62,11 @@ | ||
| 62 | <el-table-column prop="subjectName" label="科目" align="center"></el-table-column> | 62 | <el-table-column prop="subjectName" label="科目" align="center"></el-table-column> |
| 63 | <el-table-column prop="classList" label="班级" align="center"> | 63 | <el-table-column prop="classList" label="班级" align="center"> |
| 64 | <template slot-scope="scoped"> | 64 | <template slot-scope="scoped"> |
| 65 | - <span v-for="(item, index) in scoped.row.classList">{{ | ||
| 66 | - `${index == 0 ? '' : '/'}` + item.className | ||
| 67 | - }}</span> | 65 | + <span v-for="(item, index) in scoped.row.classNames">{{ `${index == 0 ? '' : '/'}` + item }}</span> |
| 68 | </template> | 66 | </template> |
| 69 | </el-table-column> | 67 | </el-table-column> |
| 70 | <el-table-column prop="title" label="试卷名称" align="center"></el-table-column> | 68 | <el-table-column prop="title" label="试卷名称" align="center"></el-table-column> |
| 71 | - <el-table-column prop="score" label="卷面分" align="center"></el-table-column> | 69 | + <el-table-column prop="examPaperScore" label="卷面分" align="center"></el-table-column> |
| 72 | <el-table-column label="操作" align="center"> | 70 | <el-table-column label="操作" align="center"> |
| 73 | <template slot-scope="scoped"> | 71 | <template slot-scope="scoped"> |
| 74 | <el-button type="primary" circle size="mini" icon="el-icon-arrow-right" | 72 | <el-button type="primary" circle size="mini" icon="el-icon-arrow-right" |
| @@ -126,8 +124,7 @@ export default { | @@ -126,8 +124,7 @@ export default { | ||
| 126 | } | 124 | } |
| 127 | }, | 125 | }, |
| 128 | async created() { | 126 | async created() { |
| 129 | - this.code = localStorage.getItem("csCode") || ""; | ||
| 130 | - | 127 | + this.code = this.$store.getters.csCode; |
| 131 | this.init() | 128 | this.init() |
| 132 | }, | 129 | }, |
| 133 | mounted() { | 130 | mounted() { |
| @@ -147,6 +144,7 @@ export default { | @@ -147,6 +144,7 @@ export default { | ||
| 147 | const queryData = this.$route.query.params | 144 | const queryData = this.$route.query.params |
| 148 | queryData ? this.query = { ...this.query, ...JSON.parse(queryData) } : '' | 145 | queryData ? this.query = { ...this.query, ...JSON.parse(queryData) } : '' |
| 149 | console.log(this.query) | 146 | console.log(this.query) |
| 147 | + this.$store.commit('setClasses', this.query.classId.join(',')) | ||
| 150 | if (this.query.classId.length > 1) { | 148 | if (this.query.classId.length > 1) { |
| 151 | this.isMultipleClass = true | 149 | this.isMultipleClass = true |
| 152 | } | 150 | } |
| @@ -225,11 +223,12 @@ export default { | @@ -225,11 +223,12 @@ export default { | ||
| 225 | }, | 223 | }, |
| 226 | // 多班对比 | 224 | // 多班对比 |
| 227 | linkContrast(obj) { | 225 | linkContrast(obj) { |
| 226 | + console.log(obj) | ||
| 228 | this.$router.push({ | 227 | this.$router.push({ |
| 229 | path: "/testAnalysis", | 228 | path: "/testAnalysis", |
| 230 | query: { | 229 | query: { |
| 231 | - ids: obj.ids, | ||
| 232 | - classId: obj.classList.map(item => item.classId).join(), | 230 | + ids: obj.ids.join(','), |
| 231 | + classId: obj.classIds.join(','), | ||
| 233 | subjectName: obj.subjectName, | 232 | subjectName: obj.subjectName, |
| 234 | title: obj.title, | 233 | title: obj.title, |
| 235 | type: 4 | 234 | type: 4 |
| @@ -284,7 +283,7 @@ export default { | @@ -284,7 +283,7 @@ export default { | ||
| 284 | for (let key in this.query) { | 283 | for (let key in this.query) { |
| 285 | if (this.query[key] != "") { | 284 | if (this.query[key] != "") { |
| 286 | if (key == 'classId') { | 285 | if (key == 'classId') { |
| 287 | - if (query.classId?.length == 1) { | 286 | + if (this.query.classId?.length == 1) { |
| 288 | query.classId = this.query[key][0] | 287 | query.classId = this.query[key][0] |
| 289 | } else { | 288 | } else { |
| 290 | query.classIds = [...this.query[key]] | 289 | query.classIds = [...this.query[key]] |
| @@ -303,8 +302,35 @@ export default { | @@ -303,8 +302,35 @@ export default { | ||
| 303 | }); | 302 | }); |
| 304 | this.loading = false; | 303 | this.loading = false; |
| 305 | if (status === 0) { | 304 | if (status === 0) { |
| 306 | - this.tableData = (data?.list && [...data?.list]) || []; | ||
| 307 | - this.total = data?.count || 0; | 305 | + if (this.query.classId.length > 1) { |
| 306 | + //多班级 | ||
| 307 | + let tableObj = {}; | ||
| 308 | + data?.list?.map((item) => { | ||
| 309 | + if (tableObj[item.examPaperId]) { | ||
| 310 | + tableObj[item.examPaperId].ids.push(item.id) | ||
| 311 | + tableObj[item.examPaperId].classIds.push(item.classId) | ||
| 312 | + tableObj[item.examPaperId].classNames.push(item.className) | ||
| 313 | + } else { | ||
| 314 | + tableObj[item.examPaperId] = { | ||
| 315 | + ids: [item.id], | ||
| 316 | + examPaperId: item.examPaperId, | ||
| 317 | + classIds: [item.classId], | ||
| 318 | + classNames: [item.className], | ||
| 319 | + title: item.title, | ||
| 320 | + examPaperScore: item.examPaperScore, | ||
| 321 | + subjectName: item.subjectName | ||
| 322 | + } | ||
| 323 | + } | ||
| 324 | + }); | ||
| 325 | + Object.keys(tableObj).map(keys => { | ||
| 326 | + if (tableObj[keys].classIds.length > 1) { | ||
| 327 | + this.tableData.push(tableObj[keys]) | ||
| 328 | + } | ||
| 329 | + }) | ||
| 330 | + } else { | ||
| 331 | + this.tableData = (data?.list && [...data?.list]) || []; | ||
| 332 | + this.total = data?.count || 0; | ||
| 333 | + } | ||
| 308 | } else { | 334 | } else { |
| 309 | this.$message.error(info); | 335 | this.$message.error(info); |
| 310 | } | 336 | } |
src/views/examinationPaper/archiving.vue
| @@ -142,7 +142,7 @@ export default { | @@ -142,7 +142,7 @@ export default { | ||
| 142 | }; | 142 | }; |
| 143 | }, | 143 | }, |
| 144 | async created() { | 144 | async created() { |
| 145 | - this.code = localStorage.getItem("csCode") || ""; | 145 | + this.code = this.$store.getters.csCode; |
| 146 | this.role = | 146 | this.role = |
| 147 | this.$store.getters.info.showRole || | 147 | this.$store.getters.info.showRole || |
| 148 | this.$store.getters.info.permissions[0].role; | 148 | this.$store.getters.info.permissions[0].role; |
src/views/examinationPaper/index.vue
| @@ -190,7 +190,7 @@ export default { | @@ -190,7 +190,7 @@ export default { | ||
| 190 | }; | 190 | }; |
| 191 | }, | 191 | }, |
| 192 | async created() { | 192 | async created() { |
| 193 | - this.code = localStorage.getItem("csCode") || ""; | 193 | + this.code = this.$store.getters.csCode; |
| 194 | this.role = | 194 | this.role = |
| 195 | this.$store.getters.info.showRole || | 195 | this.$store.getters.info.showRole || |
| 196 | this.$store.getters.info.permissions[0].role; | 196 | this.$store.getters.info.permissions[0].role; |
src/views/index/mainIndex.vue
| @@ -257,7 +257,7 @@ export default { | @@ -257,7 +257,7 @@ export default { | ||
| 257 | }, | 257 | }, |
| 258 | }, | 258 | }, |
| 259 | created() { | 259 | created() { |
| 260 | - this.code = localStorage.getItem("csCode") || ""; | 260 | + this.code = this.$store.getters.csCode; |
| 261 | this._Init(this.$store.getters.info.showRoleName); | 261 | this._Init(this.$store.getters.info.showRoleName); |
| 262 | this._QueryData(); | 262 | this._QueryData(); |
| 263 | }, | 263 | }, |
src/views/layout/aside/aside.vue
| @@ -86,7 +86,7 @@ export default { | @@ -86,7 +86,7 @@ export default { | ||
| 86 | }; | 86 | }; |
| 87 | }, | 87 | }, |
| 88 | created() { | 88 | created() { |
| 89 | - this.code = getURLParams("code") || localStorage.getItem("csCode") || ""; | 89 | + this.code = getURLParams("code") || this.$store.getters.csCode; |
| 90 | this.path = this.$route.path; | 90 | this.path = this.$route.path; |
| 91 | }, | 91 | }, |
| 92 | methods: { | 92 | methods: { |
src/views/layout/header/header.vue
| @@ -194,7 +194,7 @@ export default { | @@ -194,7 +194,7 @@ export default { | ||
| 194 | }; | 194 | }; |
| 195 | }, | 195 | }, |
| 196 | created() { | 196 | created() { |
| 197 | - this.code = localStorage.getItem("csCode") || ""; | 197 | + this.code = this.$store.getters.csCode; |
| 198 | this.role = | 198 | this.role = |
| 199 | this.$store.getters.info.showRole || | 199 | this.$store.getters.info.showRole || |
| 200 | this.$store.getters.info.permissions[0].role; | 200 | this.$store.getters.info.permissions[0].role; |
src/views/login/index.vue
| @@ -115,7 +115,7 @@ export default { | @@ -115,7 +115,7 @@ export default { | ||
| 115 | }, | 115 | }, |
| 116 | created() { | 116 | created() { |
| 117 | this.url = this.$route.query?.url || ""; | 117 | this.url = this.$route.query?.url || ""; |
| 118 | - this.code = getURLParams("code") || localStorage.getItem("csCode") || ""; | 118 | + this.code = getURLParams("code") || this.$store.getters.csCode; |
| 119 | this.dockkey = getURLParams("dockkey") || ""; | 119 | this.dockkey = getURLParams("dockkey") || ""; |
| 120 | if (this.code || this.dockkey) { | 120 | if (this.code || this.dockkey) { |
| 121 | this.loading = true; | 121 | this.loading = true; |